2009-03-26 8 views
2

Visual Studio scheint Klassenkonstruktorcode und Ereignisbehandlungscode in die H-Datei einfügen zu wollen. Ich war nur in kleinen 1-Mann-Projekten involviert und fragte mich, was der allgemeine Industriestandard war.Bewährte Methoden in Visual Studio C++

Für Visual C++ - Anwendung Projekte welchen Code würde man in die .h-Datei setzen? Ich bin an den Modus klassische C++ Weise der Deklaration Ihrer Klasse in der .h-Datei und Codierung in der .cpp-Datei gewöhnt. Gilt das noch für Visual Studio-Anwendungen?

Ich habe einen starken C-Hintergrund, der meine Vorliebe dafür erklären würde. Dem VSC++ - Compiler scheint es nichts auszumachen.

Kurz gesagt: Was soll man in welchen Dateityp legen?

TIA kurz

Antwort

3

Es gibt keinen allgemein akzeptierten Industriestandard. Indem Sie (kurze) Funktionsdefinitionen in die Kopfzeile einfügen, geben Sie dem Compiler eine bessere Chance, den Code einzubinden. Der Vorteil ist, dass der Code schneller ausgeführt werden kann (diese Funktionen müssen jedoch kurz sein). Dies führt jedoch dazu, dass den Clients, die diesen Header enthalten, mehr Code zur Verfügung gestellt wird, sodass Sie (oder Ihre Kollegen) beim Ändern der Implementierung mehr Dateien neu kompilieren müssen.

Sie müssen auch die Kosten für den Einsatz gegen Ihre Werkzeuge berücksichtigen. Da die VC++ - Assistenten darauf bestehen, die Funktionen in die Kopfzeilen einzufügen, müssen Sie sie jedes Mal verschieben, wenn Sie nicht zustimmen.

Es ist wirklich projektspezifisch, würde ich sagen.

+0

Danke Carl. Was du sagst, ist was ich bemerkt habe. Ich brauchte eine Bestätigung, dass ich nicht sah, was ich sehen wollte. – EndsOfInvention

2

für Visual C++ Anwendungsprojekte welcher Code würde man put in der .h -Datei? Ich bin an den Modus klassische C++ Weise der Deklaration Ihrer Klasse in der .h-Datei und Kodierung in der .cpp-Datei gewöhnt. Gilt dies weiterhin für Visual Studio Anwendungen?

Kurz: Ja Long: Abhängig von der Person oder Sprache. In C++ dient der Header zum Deklarieren und cpp zum Codieren. Für C# haben Sie eine Datei (oder wenn Sie Schnittstellen verwenden, 2)

3

Wenn Sie MFC verwenden und Sie über den generierten Code sprechen, ist es am besten, es in Ruhe zu lassen.

Wenn Sie versuchen, 'normale' C++ - Entwicklung zu machen, setzen Sie so wenig wie möglich in die Kopfzeile, da dies bedeutet, dass Client-Code nicht von zu vielen Implementierungsdetails abhängt. Was Sie davon bekommen können, hängt ein wenig von der Verwendung von Vorlagen ab und davon, wie viel Umleitung Ihr Leistungsbudget unterstützen kann.

1

Das mag klein erscheinen, aber denken Sie daran: Header sind an mehreren Stellen enthalten. (Und Kopfzeilen einschließlich Header verkompliziert die Dinge weiter.) Jedes Mal, wenn Sie eine Kopfzeile ändern, werden viele Dateien erneut kompiliert werden. Wenn Sie so wenig häufig ändernden Code im Header beibehalten, wird die Neukompilierung abhängiger Dateien reduziert.

Eine andere Sache: eine übersichtliche Header-Datei gibt Ihnen einen schnellen Überblick über was eine Klasse/Formular zu bieten hat.

Verwandte Themen