S
sw33tlull4by
Guest
Hi!
Ich bin letztens ueber eine Syntax gestolpert welche ich dachte zu verstehen und dann stellte sich heraus das da noch mehr hintersteckt.
Es geht um folgende Notation
erbendeklasse(int t,char h):vererbendeklasse(t){};
Diese Syntax sorgt dafuer das der Konstruktor der vererbenden Klasse aufgerufen wird,
und das anscheinend noch vor dem Konstruktor der erbenden Klasse.
Soweit sogut.
Nun wollte ich einen fstream-Objekt kopieren, geht ja nicht da copy-Constructor private ist.
Also habe ich Referenzvariablen uebergeben wollen.
Fehlermeldung war:
uninitialized reference member
Obwohl ich die Referenze im Konstruktor zugewiesen habe,was ich eigenartig fand.
Nach etwas suchen hat mich dann obige Syntax nochmal gerettet.
Kann mir also jemand sagen was genau es mit obiger Notation auf sich hat, oder zumindest wonach ich suchen muss wenn ich darueber Informationen finden will?
mfg
sw33t
Ich bin letztens ueber eine Syntax gestolpert welche ich dachte zu verstehen und dann stellte sich heraus das da noch mehr hintersteckt.
Es geht um folgende Notation
erbendeklasse(int t,char h):vererbendeklasse(t){};
Diese Syntax sorgt dafuer das der Konstruktor der vererbenden Klasse aufgerufen wird,
und das anscheinend noch vor dem Konstruktor der erbenden Klasse.
Soweit sogut.
Nun wollte ich einen fstream-Objekt kopieren, geht ja nicht da copy-Constructor private ist.
Also habe ich Referenzvariablen uebergeben wollen.
Fehlermeldung war:
uninitialized reference member
Obwohl ich die Referenze im Konstruktor zugewiesen habe,was ich eigenartig fand.
Nach etwas suchen hat mich dann obige Syntax nochmal gerettet.
class lesen
{
std::fstream &einmal;
...
lesen(std::fstream& lalala, int nocheinparameter):einmal(lalala)
{
......
}
//fuehrt zu Fehler
/*
lesen(std::fstream& lalala,int nocheinparameter)
{
einmal = lalala;
.....
}
*/
}
{
std::fstream &einmal;
...
lesen(std::fstream& lalala, int nocheinparameter):einmal(lalala)
{
......
}
//fuehrt zu Fehler
/*
lesen(std::fstream& lalala,int nocheinparameter)
{
einmal = lalala;
.....
}
*/
}
Kann mir also jemand sagen was genau es mit obiger Notation auf sich hat, oder zumindest wonach ich suchen muss wenn ich darueber Informationen finden will?
mfg
sw33t