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.