A
BerndD schrieb:
Anderseits vertrittst du das andere Extrem, nämlich das der Konstruktorrumpf eigentlich überflüssig sei. Das ist er aber nur, wenn sich das Objekt vollständig über seine ctor-Parameter konfigurieren lässt.
In der Regel ist er das auch, und ich sagte ja im Regelfall benutze ich den Konstruktorrumpf nicht, ich habe nicht gesagt das ich ihn nie verwende. Wobei ich wenn ein Objekt anders "konfiguriert" wird, in der Regel auch einen Anderen Konstruktor habe und damit auch die Initialisierungsliste anders setze.
asc schrieb:
Vielleicht gibt es ein Verständigungsproblem, weil ich als Delphi-Programmierer Begriffe anders verwende. Wenn ich von Parentobjekt spreche, hat das nichts mit Ableiten (in sinne von Vererben) zu tun. Der Parent ist das Objekt, das die Child-Objekte als Membervariablen enthält.
Okay, das ist im OO Jargon eine Komposition. Das Objekt enthält andere Objekte. Ein sinnvoller Begriff wie man die enthaltenen Objekte nennen kann ist mir aber nicht geläufig. Der Begriff Child/Parent wird aber auch mehrdeutig verwendet (Deine Begrifflichkeit erinnert mich an Parentfenster / Childfenster).
asc schrieb:
In C++ sagt man vielleicht Container dazu, obwohl das IMHO nur für Klassen richtig ist, die zur Laufzeit eine unbestimmte Menge vom Objekten aufnehmen kann.
Container können auch eine fixe Anzahl aufnehmen. Es gibt z.B. im C++ TR1 Standard wenn ich mich nicht irre ein Arraytyp.
asc schrieb:
In Delphi hat zum Beispiel jede Klasse eines GUI-Elementes einen "Parent"-Zeiger auf das in der Fensterhirachie übergeordnete Objekt.
Ja leider mehrdeutig, im Zusammenhang den du beschrieben hast klang es nach Parent/Child im OO Sinne ;p
asc schrieb:
Jetzt denke ich, die Übergabe eines Zeiger auf das Stringobjekt des Parent wäre die beste Lösung. Ich weiss das klingt jetzt albern, dass ich da nicht gleich draufgekommen bin, aber ich bin nunmal nicht fit in C++ Syntax und darf nicht zu viel Zeit in meine Ausbildung stecken, da ich im Erreichen des Projektziels zu langsam bin.
Gut bei einem einfachen String wäre es zuviel des Guten, aber ansonsten schreit das für mich nach einem "shared_ptr" (Smartpointer mit Referenzzählung, gibt im Magazin dazu ein Titel, ansonsten sei hier auf die empfehlenswerte boost Bibliothek verwiesen http://www.boost.org/libs/smart_ptr/smart_ptr.htm, wobei der nächste Standard C++0x shared_ptr in die Standardbibliothek übernimmt).
asc schrieb:
Danke für die ausführliche Literaturliste. Soweit ich sie kenne, sind es aber "Lehrbücher" für gutes C++ Design und deshalb zum Nachschlagen weniger geeignet. Für mich, der ich bereits eine anderen Programmiersprache gut beherrsche, wäre ein Nachschlagewerk für C++ Syntax ideal, weil ich schon weiß was ich will, ich weiß nur nicht wie ich es den C++ Compiler sagen kann.
Es sind um genau zu sein Bücher die eher für Fortgeschrittene und Profis gedacht sind, und zeigen wie man effizient mit C++ umgeht, was es für Fallstricke gibt und zudem zeigen sie mit sicherheit Wissenslücken aus. Dennoch empfehle ich die aktuelle deutsche oder englische Ausgabe von Effektiv C++ Programmieren (Scott Meyer).
Als Referenz geeignet, wenn auch nicht unbedingt leicht zu lesen, ist einmal die quasi C++ Bibel, vom C++ Erfinder:
* Bjarne Stroustrup [Addison-Wesley], Die C++-Programmiersprache
Für spezielle Themen wie Templates, STL etc. gibt es dann ebenso recht gute Bücher.
cu André