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? ^^
