Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 22.05.2008, 19:25 Titel: istream Operator überladen |
|
|
Hi,
ich habe eine simple Vektorklasse, mit überladenen Operatoren:
CPP: | template<typename t> std::ostream& operator<<(std::ostream &Stream, const Vector3<t> &Vector)
{
return Stream << Vector.x << " " << Vector.y << " " << Vector.z;
}
template<typename t> std::istream& operator>>(std::istream &Stream, const Vector3<t> &Vector)
{
return Stream >> Vector.x >> Vector.y >> Vector.z;
}
|
Der ostream Operator funktioniert wunderbar, z.B. mit cout. Auch ticpp benutzt den um einen Vector als XML Attribute zu schreiben, was ich sehr cool finde.
Also wollte ich daher den istream Operator erstellen, damit ich damit auch XML Attribute einfach laden kann.
Das sähe dann so aus:
CPP: | Object->GetAttribute("Position", &m_Position);
|
Folgende Fehlermeldung kommt:
Code: |
Vector3d.h 132 error: no match for 'operator>>' in 'Stream >> Vector->Vector3<float>::x'
|
Keine Ahnung was das soll, ein Operator für floats muss es ja auf jeden Fall geben. Wieso geht das alles net? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 22.05.2008, 19:37 Titel: |
|
|
So z.B.:
CPP: | template<typename t> std::istream& operator>>(std::istream &Stream, Vector3<t> &Vector) |
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 22.05.2008, 19:42 Titel: |
|
|
also ohne const? Jop, hätte ich eigentlich sehen müssen
Jetzt scheint es zu gehen. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 22.05.2008, 19:42 Titel: |
|
|
Logisch ohne const. Wie willst du sonst auf die Member x, y und z schreiben zugreifen? |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 22.05.2008, 20:08 Titel: |
|
|
Ja, klar ist es logisch, es war halt ein typischer Fall von, "kann man 100 mal lesen und sieht den Fehler immer noch nicht".
Zumal die Fehlermeldung auch ein wenig komisch war. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|