Как мы используем абстрактный класс в качестве возвращаемого типа функции?
Что такое C++ способ вернуть производный тип как абстрактный тип в функцию с этим предупреждением?
Скажем, функция создает производный тип и хочет вернуть этот объект как абстрактный базовый тип. Как вы делаете это в C++, не прибегая к грязному C, как указатели?
1 ответ
Вы спрашиваете пример кода? Надеюсь, это поможет...
class Mammal {
public:
virtual void Speak() const = 0;
};
class Dog : public Mammal {
public:
void Speak() const {
cout << "Woof Woof" << endl;
}
};
Mammal* getDog() {
return new Dog();
}
int main() {
Mammal* m = getDog();
m->Speak();
delete m;
return 0;
}