int main() { My my; int i; my(5)=6; i = my(5); std::cout << i << std::endl; return0; }
Warum? Bzw. wie muss ich das aufrufen? (Ich vermute zwar mal, dass es am const liegt, aber finde, dass es trotzdem funktionieren sollte.)Dieser Post wurde am 17.11.2006 um 19:28 Uhr von Pler editiert.
mach ein return (const)operator()(pos) dann sollte es gehen. Ich hab bei der Aufgabe einfach eine Subfunktion definiert und die in beiden aufgerufen -- class God : public ChuckNorris { };
mach ein return (const)operator()(pos) dann sollte es gehen. Ich hab bei der Aufgabe einfach eine Subfunktion definiert und die in beiden aufgerufen
Ja, zum Funktionieren hab ich's ja schon bekommen. Wollte aber aus interesse noch ein bisschen damit rumspielen. Aber warum sollte es dadurch gehen? Und wo genau meinst du?
Zitat von unwissender:
Woher kommt pos? Es fehlt auch ein Destruktor.
Oh, da hab ich wohl bei dem Versuch das ganze forumsgerecht anzupassen ein bisschen was vergessen. pos ist natürlich das Argument für die Methode. Einen Destruktor brauch ich nicht Dieser Post wurde am 17.11.2006 um 19:24 Uhr von Pler editiert.
mach ein return (const)operator()(pos) dann sollte es gehen.
Hab ich jetzt mal probiert:
Zitat von gcc:
g++ mytest.cpp -o mytest mytest.cpp: In member function ‘const int& My::operator()(int) const’: mytest.cpp:17: warning: returning reference to temporary
Laufen tuts trotzdemDieser Post wurde am 17.11.2006 um 19:36 Uhr von Pler editiert.