Moin zusammen,
ich vertiefe gerade meine Kenntnisse in C++ und bin nun auf ein Problem gestoßen.
Folgendes Szenario:
Ich habe zwei Klassen:
und
their (Name hat keine Bedeutung) ist also vom Klassentyp first_class und static.
Nun will ich die beiden Klassen verwenden:
Meine Frage also: Wie kann ich "their" initialisieren?
Ich bringe mir das selber bei, habe daher keine Möglichkeit jemanden zu fragen, ich bitte daher auch um Nachsicht. Ich habe natürlich im Internet gesucht und auch versucht, es mit Büchern herauszufinden, ist mir aber nicht geglückt.
Vielen Dank!
Gruß,
badday
EDIT: Es kann auch eine völlig falsche Annahme enthalten sein (was vielleicht der Grund ist, dass bisher keiner geantwortet hat). Es nur ein triviales Beispiel und sollte daher relativ simpel zu lösen sein.
ich vertiefe gerade meine Kenntnisse in C++ und bin nun auf ein Problem gestoßen.
Folgendes Szenario:
Ich habe zwei Klassen:
Code:
class fist_class
{
public:
first_class(int a): val(a) {}; //Konstruktor, übernimmt int
int get() {return val;} //gibt val zurück
private:
int val;
};
und
Code:
class second_class
{
public:
static first_class their;
static int FirstVal(){return their.get();}
};
their (Name hat keine Bedeutung) ist also vom Klassentyp first_class und static.
Nun will ich die beiden Klassen verwenden:
Code:
int main()
{
first_class one(16); //ok
cout<<one.get()<<endl; //ok
//!!!
second_class::their(34); //nicht ok
//geht auch nicht:
first_class second_class::their(32);
second_class two; //geht
//geht natürlich nicht, da FooVal() auf their zugreifen müsste und dies ja "keinen" Wert hat
cout<<second_class::FooVal()<<endl;
return 0;
}
Meine Frage also: Wie kann ich "their" initialisieren?
Ich bringe mir das selber bei, habe daher keine Möglichkeit jemanden zu fragen, ich bitte daher auch um Nachsicht. Ich habe natürlich im Internet gesucht und auch versucht, es mit Büchern herauszufinden, ist mir aber nicht geglückt.
Vielen Dank!
Gruß,
badday
EDIT: Es kann auch eine völlig falsche Annahme enthalten sein (was vielleicht der Grund ist, dass bisher keiner geantwortet hat). Es nur ein triviales Beispiel und sollte daher relativ simpel zu lösen sein.
Zuletzt bearbeitet: