gpt4 book ai didi

c++检查基引用的大多数派生类是否具有另一个基

转载 作者:行者123 更新时间:2023-11-27 22:58:11 25 4
gpt4 key购买 nike

<分区>

这是我希望看到的行为的一些示例代码:

// Example program
#include <iostream>
#include <string>
#include <type_traits>
#include <vector>

class BaseA
{
public:
BaseA() { };
};

class BaseB
{
public:
BaseB() { };
};

class Derived1 : public BaseA
{
public:
Derived1() : BaseA() { };
};

class Derived2 : public BaseA, public BaseB
{
public:
Derived2() : BaseA(), BaseB() { };
};

int main()
{
std::vector<BaseA *> collection_of_As{
new Derived1{}, new Derived1{}, new Derived2{},
new Derived2{}, new Derived1{}, new Derived2{}
};

for (BaseA * Aptr: collection_of_As) {
BaseB * Bptr = dynamic_cast<BaseB *>(Aptr);

std::cout << std::boolalpha << (Bptr != std::nullptr) << std::endl;
}

return 0;
}

但它不会编译,因为 BaseA 不是多态的,即使它的大多数派生类都可以。我明白为什么这不起作用,但我仍然需要这种行为。有什么办法可以编译和工作吗?

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