Как мы используем абстрактный класс в качестве возвращаемого типа функции?

Что такое 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;
}
Другие вопросы по тегам