gpt4 book ai didi

c++ - 从抽象类 C++ 继承对象的数组

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:22 25 4
gpt4 key购买 nike

我正在尝试制作一组​​不同的对象,这些对象都是从一个抽象类继承的。这可能吗?这是我拥有的:

Human *human;
human = new Human(100,100);

Cyberdemon *cyberDemon;
cyberDemon = new Cyberdemon(100, 100);

Balrog *balrog;
balrog = new Balrog(100, 100);

Elf *elf;
elf = new Elf(100, 100);

Human和Elf继承自Creature,是一个抽象类。 Cyber​​demon 和 Balrog 继承自 Demon 类,Demon 类也继承自 Creature。制作这四个对象的数组的最佳方法是什么?

最佳答案

因为我喜欢代码整洁:

Human      *human      = new Human(100, 100);
Cyberdemon *cyberDemon = new Cyberdemon(100, 100);
Balrog *balrog = new Balrog(100, 100);
Elf *elf = new Elf(100, 100);

std::vector<Creature*> creatureList{human, cyberDemon, balrog, elf};

或者,如果您以后不需要单独的指针:

std::vector<Creature*> creatureList{
new Human(100, 100),
new Cyberdemon(100, 100),
new Balrog(100, 100),
new Elf(100, 100)
};

或者,整洁和安全(感谢 Kerrek SB):

std::vector<unique_ptr<Creature>> creatureList{
std::make_unique<Creature>(100, 100),
std::make_unique<Cyberdemon>(100, 100),
std::make_unique<Balrog>(100, 100),
std::make_unique<Elf>(100, 100)
};

关于c++ - 从抽象类 C++ 继承对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com