gpt4 book ai didi

c++ - 如何覆盖基类成员的类型?

转载 作者:行者123 更新时间:2023-11-28 06:25:44 26 4
gpt4 key购买 nike

我有以下类层次结构

class Boy : Child
class Girl : Child

class Parent
{
vector<Child> children;
}
class Anna : Parent

但我在编译之前就知道 Anna 永远只有男孩,所以与其只使用 Parent 的 Child 接口(interface),我希望 Anna 也能够访问 Boys 成员,这对她的 child 来说会更好!有没有办法在不强制转换的情况下进行建模?

class Anna : public Parent
{
vector<Boys> children; //Here i just Hide the base class member
}

谢谢。

最佳答案

您不能让基类的成员根据派生类型更改其类型。但是,您可以创建一个具有依赖成员的模板类,并让您的派生类继承所需类型的基类。

如果您希望派生类具有公共(public)基类,您可以从类继承基类模板。

class BaseParent {};
template<class T>
class Parent: public BaseParent {
vector<T> children;
};
class Anna: public Parent<Boy> {};

关于c++ - 如何覆盖基类成员的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28562536/

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