gpt4 book ai didi

C++ 转换为基类

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:58 24 4
gpt4 key购买 nike

<分区>

我有一个基类 A 和一个派生类 B

class A {
public:
int x;
virtual int getX() {
return x;
}
};

class B : public A {
public:
int y;
};

虚函数只是为了让它多态。接下来我声明一个 A 的列表,但将 B 放在里面:

vector<A> list;
B b1,b2;
b1.y = 2;
b2.x = 10;

list.push_back(b1);
list.push_back(b2);

现在我想遍历 vector 上的所有元素并访问 y 成员(只有 B 有):

for (auto it = list.begin(); it != list.end(); ++it) {
B &cast = dynamic_cast<B&>(*it);
int value = cast.y;
std::cout << value << std::endl;
}

此代码给出运行时错误。知道如何进行转换并访问 y 吗?

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