gpt4 book ai didi

c++ - 存储抽象类型的对象

转载 作者:太空宇宙 更新时间:2023-11-04 16:17:06 25 4
gpt4 key购买 nike

假设我有一个抽象类/接口(interface):

class MyInterface {
public:
virtual void foo() = 0;
virtual ~MyInterface(){}
};

class MyImplemented : public MyInterface {
public:
virtual void foo(){ /*do something*/ };
}

我想要一个可以存储 MyInterface 对象的 vector ,我打算用它来存储 MyImplemented 类的对象。

除了制作指向 MyInterface 对象的指针 vector 之外,还有其他方法可以做到这一点吗?即

 std::vector<MyInterface*> myVector; 

另外,如果 MyInterface 是一个具体的类,会有什么改变吗?

最佳答案

您可以使用智能指针而不是内置指针 (std::unique_ptr) 或者您可以使用 boost::any 然后转换为真实类型

关于c++ - 存储抽象类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21585644/

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