43 Stimmen

Wie kann ich eine übergeordnete Klasse in eine untergeordnete Klasse umwandeln?

Es ist schon eine Weile her, dass ich C++-Code schreiben musste, und ich komme mir irgendwie dumm vor. Ich habe Code geschrieben, der ähnlich ist wie, ist aber nicht genau den unten stehenden Code:

class Parent
{
    ...
};

class Child : public Parent
{
    ...
};

class Factory
{
    static Parent GetThing() { Child c; return c; }
};

int main()
{
    Parent p = Factory::GetThing();
    Child c1 = p; // Fails with "Cannot convert 'Parent' to 'Child'"
    Child c2 = (Child)p; // Fails with "Could not find a match for 'TCardReadMessage::TCardReadMessage(TCageMessage)'"
}

Ich weiß, dass das eigentlich ganz einfach sein sollte, aber ich bin mir nicht sicher, was ich falsch mache.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X