Kein namespace using in Headern?
-
Habe gerade in Bruce Eckels Thinking in C++ (2nd Edition Volume 1, Chapter 4)
gelesen, dass man keine Using-Direktiven in Header-Files benutzen soll:Bruce Eckel schrieb:
In short: don’t put using directives in header files.
Da frage ich mich aber etwas:
So wie ich es gelernt habe, platziert man Klassen mit Definition in Header-Files:// Lautsprecher.h #ifndef LAUTSPRECHER_H #define LAUTSPRECHER_H class Lautsprecher { private: int volume; public: Lautsprecher(int volume); void turn_off(); }; Lautsprecher::Lautsprecher(int volume) { this->volume = volume; } void Lautsprecher::turn_off() { volume = 0; } #endifAber wenn man keine Using-Direktiven in Headern benutzen soll (was ja durchaus seinen Sinn hat), wo soll man sie denn sonst benutzen? =O
Ich meine, ansonsten hat man doch nur eine kleine "Main-Datei", in der die main-Funktion ist, die - sofern man sich denn auch schön an OOP und seinen Code sauber hält - keine X-hundert Zeilen Code hat; in dieser könnte man dann die Using-Direktiven verwenden.Oder sehe ich da etwas komplett falsch?

-
Die Definition der Klasse sollte eigentlich in eine .cpp-Datei. Dort kannst du dann 'using ...' verwenden.
In der .h-Datei sollte nur die Klassendeklaration stehen.
-
TuttiFrutti schrieb:
Die Definition der Klasse sollte eigentlich in eine .cpp-Datei. Dort kannst du dann 'using ...' verwenden.
In der .h-Datei sollte nur die Klassendeklaration stehen.Danke
... ich bin so ein Nappel. Hab mir gedacht, bevor du weiterliest, klärst du erst mal deine Frage - toll, im nächstens Absatz stand dannYou’ll usually put the declaration for each type or group of associated types in a separate header file, then define the functions for that type in a translation unit.