Solution Explorer in Visual Studio?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Für den Anfang sind nur zwei Ordner von Interesse:

  • Header Files
  • Source Files

In den erstgenannten Ordner werden alle Dateien mit der Endung .h (oder .hpp) gespeichert. Das sind Dateien, die üblicherweise nur Deklarationen beinhalten (z.B. Funktionsdeklarationen oder Klassen).

Im letztgenannten Ordner kommen die Dateien mit der Endung .cpp hinein. Diese Dateien beinhalten üblicherweise die konkreten Implementationen (z.B. Funktions- und Methodenimplementationen). Ebenso hättest du in diesem Ordner eine Datei, die den Startpunkt deiner Anwendung implementiert.

Ein komplettes, einfaches Beispiel: Es gibt eine Funktion sayHello, die bei Start des Programms ausgeführt werden soll. Sie gibt einfach nur Hello in der Konsole aus.

sayhello.h

void sayHello();

sayhello.cpp

#include <iostream>
#include "sayhello.h"

void sayHello() {
  std::cout << "Hello";
}

main.cpp

#include "sayhello.h"

int main() {
  sayHello();
  return 0;
}

Wenn du das Projekt kompilierst, werden erst die einzelnen .cpp-Dateien übersetzt. Anschließend werden sie anhand der .h-Dateien (Header) miteinander verlinkt. Andernfalls hätte die main.cpp keine Kenntnis über die Implementation aus sayhello.cpp (bzw. wie das Token sayHello() aufgelöst werden sollte).

Für kleine Projekte könntest du auch gut alles in eine Datei (main.cpp) schreiben:

#include <iostream>

void sayHello() {
  std::cout << "Hello";
}

int main() {
  sayHello();
  return 0;
}

Dann müsstest du allerdings auch darauf achten, dass Funktionen wie sayHello vor ihrem Aufruf schon bekannt sind. Entweder, indem du wie oben die Funktionsimplementation an den Anfang schreibst oder du machst die Funktion mittels Funktionsdeklaration frühzeitig bekannt:

#include <iostream>

void sayHello();

int main() {
  sayHello();
  return 0;
}

void sayHello() {
  std::cout << "Hello";
}

Bei komplexeren Projekten hilft die Auslagerung der jeweiligen Implementationen in unterschiedliche Dateien dabei, das Projekt übersichtlicher zu strukturieren.

In Visual Studio sind diese Ordner übrigens nur virtuell (explizit heißen sie Filter). Das heißt, innerhalb des Solution Explorers hast du zwar diese Ordneraufteilung, doch wenn du in den Windows Explorer schaust, wirst du sehen, dass alle Dateien zusammen in nur einem Ordner liegen.

Visual Studio kann im Übrigen die Zuordnung der Dateien in diese jeweiligen Filter für dich übernehmen. Öffne via Rechtsklick auf den Projektnamen das Kontextmenü und wähle Add > New Item. Wenn du eine .h-Datei erstellst, wandert die automatisch in den Header Files-Filter, bei einer .cpp-Datei geht es in den Source Files-Filter.