Klasse in Klasse initialisieren

I

ixs

Foren As
Hi Leute,

könnt Ihr mir bitte helfen folgendes Problem zu lösen?

ich möchte in einer Klasse eine Klasse haben/initialisieren.
Normalserweise macht man das ja, indem man
objekt = Klasse(parameter) löst
doch eine Klasse darf doch im Header keine Werte haben.
Code:
class KlasseA{
 
 int i;
 Klasse Cj;

}

doch wie schaffe ich es eine Initalisierung mit Parametern zu erreichen?

vielen dank für Eure Hilfe,
ich weiß diese zu schätzen.
 
Sowas macht man im Konstruktor.
...und eleganterweise innerhalb eines statischen Initialisierers:
PHP:
class KlasseC {
protected:
	int _i;
public:
	KlasseC();

	KlasseC(int i) : _i(i) {};

	KlasseC(const KlasseC& kc) : _i(kc._i) {};
};


class KlasseA {

protected:
	KlasseC _klasseC;

public:
	KlasseA(int i) : _klasseC(i) {}

	KlasseA(const KlasseC& kc) : _klasseC(kc) {}
};
 
Interessehalber: warum?

Ich würd ja behaupten, dass man sich damit nur Schreibarbeit spart.
Bin allerdings auch mit Java vorbelastet.

Edit

Hmpf, wusst ichs doch, dass ich das schon mal wusste. :D

Wenn man die Variablen so initialisiert wird ihnen direkt ein Wert zugewiesen.
Initialisiert man eine Variable im Konstruktor auf diese:
Code:
KlasseC(int i)
{
   _i = i;
};
Art und Weise, wird erst ein int angelegt und anschließend erst der Wert zugewiesen.
Man spart sich also einen Schritt.
 
Zuletzt bearbeitet:
cool vielen dank, ist logisch ! :)

logischer Weise:

Code:
    KlasseA(int i) : _klasseC(i) : _klasseF (k) {}
oder? :think:

Code:
KlasseA(int i) : _klasseC(i) {}
KlasseA(const KlasseC& kc) : _klasseC(kc) {}
ioast ein entweder, oder. oder? :))




_
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

stimmt, ich kann es auch selbst ausprobieren.
Vielen dank!
 
Zuletzt bearbeitet:
@ixs

Kurzes offtopic:

Wenn du etwas gescheites lernen (aufgrund deines Postings gehe ich mal davon aus), dann nimm alles, aber bloß nicht diesen inkonsistenten Müll namens C und C++.

Das hätte schon vor 20 Jahren verboten gehört.

P.S.:

Um auch ein paar Beispiele zu nennen, wie man es richtig machen kann: ADA, D und Java.
 
Zuletzt bearbeitet:
also laut wiki müsste man mit Ada eine nukleare Explosion hin bekommen,
oder wenigstens ein paar cruise missiles umlenken können, hat irgendwie was, oder? :devil: ;)

Nee, mal im ernst wie kommt man zu solchen Programmiersprachen? Obwohl sie was interessantes haben.

...

Misst jetzt hast du mich ein wenig hört sich irgendwie interessant an was über ada erzählt wird. Wenn es häufig in Sicherheitssystemen verwendet wird, spricht das schon mal für Qualität.
Nur Java find ich Sch.. .
 
Zuletzt bearbeitet:
Nur Java find ich Sch.. .

Na, wir wollen uns doch hier an sachliche Argumente halten, richtig?

Java ist eine der wenigen sauber durchkonzipierten Sprachen, genauso wie ADA.

Das Problem ist halt, das die meisten Leute denken "C ist so verbreitet, das kann ja nicht schlecht sein".

Nur nach der Denkschiene wäre ja auch die Bild-Zeitung die beste Zeitung Deutschlands.....

P.S.: Bevor mir jetzt hier selber Unsachlichkeit vom geneigten Querleser unterstellt wird ("inkonsistenter Müll"), hier mal - auch wenn völlig offtopic jetzt - eine mehr als nur lesenswerte Seite von jemandem, der sich mit C lange beschäftigt hat und mal all diese Inkonsistenzen fachlich zerlegt:

-> http://users.informatik.uni-halle.de/~thielema/CHater.html
 
Zuletzt bearbeitet:

Ähnliche Themen

Router routing mit mehreren Netzwerken

Keine grafische Oberfläche (Debian Installation)

Hardware für NAS mit Debian Linux

Werte aus Dateien lesen

nach ssh-login auswerte ob passwortabfrage komt oder nicht

Zurück
Oben