C++ Memberpointer auf Basisklasse konvertieren
Verfasst: Mo Jul 29, 2013 10:21 pm
Moin!
Alle im Sommerloch verschwunden? ^^
Ich komme endlich mal wieder an den Rechner und stehe schon vor einem Problem:
Auch clang äußert sich nicht sonderlich gnädig zu dem Thema:
Ich möchte eine Funktion aufrufen, die einen (Base Wrapper::*) als Argument erhält.
Hat jemand einen Tipp, wie ich das C++ verklickert bekomme? ^^
Alle im Sommerloch verschwunden? ^^
Ich komme endlich mal wieder an den Rechner und stehe schon vor einem Problem:
Code: Alles auswählen
class Base
{
public:
int a;
};
class Derived : public Base
{
public:
int b;
};
class Wrapper
{
public:
Derived derived;
};
int main( void )
{
Derived Wrapper::*wd = &Wrapper::derived;
Base Wrapper::*wb = &Wrapper::derived; // 23: error: invalid conversion from ‘Derived Wrapper::*’ to ‘Base Wrapper::*’ [-fpermissive]
return 0;
}
Code: Alles auswählen
in@trinity:~$ clang memberptr.cpp
memberptr.cpp:22:23: error: cannot initialize a variable of type 'Base Wrapper::*' with an rvalue of type 'Derived Wrapper::*'
Base Wrapper::* wb = &Wrapper::derived; // 23: error: invalid conversion from ‘Derived Wrapper::*’ to ‘Base ...
^ ~~~~~~~~~~~~~~~~~
1 error generated.
Hat jemand einen Tipp, wie ich das C++ verklickert bekomme? ^^