Я пишу консольную программу на C ++.Допустим, у меня есть абстрактный класс Animal
, от которого наследуются экземпляры классов Dog
и Cat
.
Затем я хочу создать vector<Animal*>
, чтобы я мог просмотреть весь списокживотных я создал и использую их виртуальную функцию GetName()
, которая перегружена в дочерних классах.Пока здесь все в порядке.
Теперь у меня есть эта функция в main()
, которая называется createAnimal()
.Я хочу сделать это таким образом, чтобы он мог возвращать указатель (или ссылку) на родительский класс, независимо от того, был ли создан Dog
или Cat
.Поэтому я хотел сделать это как Animal* createAnimal()
, но затем появляется ошибка, говорящая мне «Животное»: невозможно создать экземпляр абстрактного класса .Как я могу вернуть (каким-либо образом указатель, ссылку) дочерний класс в качестве абстрактного родительского класса?
Заранее спасибо!