gpt4 book ai didi

c++ - 你能 'redeclare' 一个子类中的变量吗?

转载 作者:太空狗 更新时间:2023-10-29 20:25:39 27 4
gpt4 key购买 nike

是否可以声明一个成员是基类成员的子类?

例如

class A {
int a;
}

class B : A {
int b;
}

class Foo {
A *baz;
}

class Bar : Foo {
B *baz; //How can I not shadow baz, but 'redeclare' it as a B?
}

基本上,Bar 总是将 baz 设为 B,我想要两件事:一种显示/强制执行此操作的方式,并避免每次在 Bar 中使用时都必须强制转换 baz。我的直觉是这是不可能的,但我并不声称自己是 C++ 专家。

最佳答案

你不能。您只能重新声明虚函数的返回类型。

class Foo {
virtual A *baz();
};

class Bar : public Foo {
B *baz();
};

关于c++ - 你能 'redeclare' 一个子类中的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186933/

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