Ich habe virtuelle Klasse Auto. Von dieser Klasse gibt es verschiedene Child-Klassen.Gemeinsame Design-Schnittstelle für Kind-Klassen der Basisklasse C++
In meiner Schnittstelle, ich habe Funktion
ride(std::string type = "mercedes")
Funktionsparameter Typ und auf dieser Grundlage nimmt, entscheidet es, das Auto instanziiert und Fahrt durchführen. Derzeit ich etwas tun, wie folgt vor:
ride(std::string type = "mercedes")
{
if(type =="btw")
{
auto car = std::make_shared<BMW>();
car.ride();
}
else if(type =="audi")
{
auto car = std::make_shared<Audi>();
car.ride();
}
default
{
auto car = std::make_shared<Mercedes >();
car.ride();
}
}
Was wäre viel Auto zu instanziiert vor if-else-Schleife und dann nur die richtige Art zuweisen?
Vielen Dank!
Es sollte nicht in der Verantwortung der 'ride' Funktion sein, um abgeleitete Instanzen zu erstellen. Dafür ist eine Fabrik da. Ein String in eine bestimmte Car-Instanz umzuwandeln, ist eine einzige Verantwortung. – chris
Es scheint albern von "Car" für jede Herstellung da draußen zu stammen. Ich hätte einfach eine 'Car'-Klasse und lass sie ihre Marke und ihr Modell als 'std :: string'-Datenelement speichern. – NathanOliver