gpt4 book ai didi

C++ 从接口(interface)和转换的多重继承

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:29 24 4
gpt4 key购买 nike

如果我有一个继承自一个接口(interface)(如下)和 wxPane

的类
class iClassA
{
public:
virtual ~iClassA() {}
virtual bool FuncA() = 0;
};

具体的:

class ConcereteClass : public iClassA, wxPane
{
public:
bool FuncA();
};

可以接受类型为 iClassA *std::vector 包含我的 ConcereteClass 或者 vmaps 对转换感到困惑?

最佳答案

是的,这是完全可以接受的。这也是一种很常见的模式。

std::vector<iClass*> v;
v.push_back(new ConcreteClass);
v[0]->FuncA(); // calls ConcreteClass::FuncA();

if (ConcreteClass* cc = dynamic_cast<ConcreteClass*>(v[0])) {
// succeeds
}

delete v[0]; // correctly calls ConcreteClass::~ConcreteClass()

请注意,您继承自 wxPane privately。

关于C++ 从接口(interface)和转换的多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29919668/

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