Linker und Namensräume
-
Hallo,
angenommen ich moeche ein Klasse einbinden, die in einer separaten
Quelldatei definiert ist, dann würde ich fürclass foo {private: int x;public: f() {cout << x << endl;}};eine .h Datei anlegen, nämlich
class foo {public: f();};geht aber leider nicht

der Linker meldet dann "undefined reference: foo::f(void)"
und ich muss explizit foo::f() definieren und die class Definition
in den Header verschieben.
Dann ist die Klassendefinition auf eine .h und ein .cpp verteilt,
public und private Daten, sowie die Funktionsdeklarationen in der h, die
Funktionen selbst in der .cpp Datei.
Das finde ich extrem unübersichtlich und auch nicht wirklich OOP, da
Funktionen und Daten logisch (im Quelltext) an verschiedenen Stellen
auftauchen.Geht das auch anders ?
Vielen Dank und liebe Grüsse,
metachris
-
Ups, ich seh gerade weiter unten gibs da schon einen Thread zu sorry (;
Aber so wie es da beschrieben ist will ich es gerade nicht haben