Präfix Frage
-
Hi,
gibt es eine Möglichkeit in C++ sowas zu basteln:
Klasse* k = new Klasse;
k->Foo::methode1();
k->Foo::methode2();k->Bar::methode1();
?
-
Macht meiner Meinung nach nicht viel Sinn. Wieso willst du das so machen?
class Klasse { public: class Foo { public: static void methode1 () {}; static void methode2 () {}; }; }; int main () { Klasse* k = new Klasse; k->Foo::methode1 (); delete k; }Möglicherwei so.
Edit:
Geht so.
-
drakon schrieb:
Geht so.

nö.
aber so:
struct Foo { void methode1 (); void methode2 (); }; struct Bar { void methode1 (); void methode2 (); }; struct Klasse : Foo, Bar { }; int main () { Klasse* k = new Klasse; k->Bar::methode1(); k->Foo::methode2(); }
-
Sollte auch so gehen:
class Foo { public: void methode1(); }; class Bar { public: void methode1(); void methode2(); }; class Klasse : public Foo , public Bar { } int main () { Klasse* k = new Klasse; k->Foo::methode1(); k->Foo::methode2(); k->Bar::methode1(); delete k; }EDIT://
Zu langsam, machen structs auch die vererbung automatisch public?
-
@darthdespotism: ich war nur schneller, weil ich mir das
publicbeim tippen erspart habe
-
queer_boy schrieb:
drakon schrieb:
Geht so.

nö.
ähh.. doch das geht..
-
drakon schrieb:
queer_boy schrieb:
drakon schrieb:
Geht so.

nö.
ähh.. doch das geht..
Comeau C/C++ 4.3.9 (Mar 27 2007 17:24:47) for ONLINE_EVALUATION_BETA1
Copyright 1988-2007 Comeau Computing. All rights reserved.
MODE:strict errors C++ C++0x_extensions"ComeauTest.c", line 17: error: qualified name is not a member of class "Klasse" or
its base classes
k->Foo::methode1 ();
^1 error detected in the compilation of "ComeauTest.c".
-
@drakon,
Bei deinem Beispiel, müsste man die Methoden folgendermasen aufrufen:Klasse::Foo::methode1();@Heavy+Medic,
Darf man fragen, wofür du das brauchst?
Habe irgendwie noch nie gehört, dass jemand etwas in C++ in einer speziellen Form schreiben wollte, damit es auch so aussieht. Also nicht die Funktionalität im Vordergrund, sondern die Ästhetik
Grüssli
-
darthdespotism schrieb:
drakon schrieb:
queer_boy schrieb:
drakon schrieb:
Geht so.

nö.
ähh.. doch das geht..
Comeau C/C++ 4.3.9 (Mar 27 2007 17:24:47) for ONLINE_EVALUATION_BETA1
Copyright 1988-2007 Comeau Computing. All rights reserved.
MODE:strict errors C++ C++0x_extensions"ComeauTest.c", line 17: error: qualified name is not a member of class "Klasse" or
its base classes
k->Foo::methode1 ();
^1 error detected in the compilation of "ComeauTest.c".
Schräg der VC++ mekert das nichts.

-
Auf voller Warnstufe?
Eine Warnung sollte schon drinnen sein ...
EDIT://
Andererseits warnt er auch bei void main() nicht wenn ich damals den VC08 Blog Eintrag richtig verstanden habe
-
Volle Warnstufe.
Naja, war auch überrascht, dass es geht.