gpt4 book ai didi

c++ - 不包含继承?

转载 作者:行者123 更新时间:2023-11-30 01:29:39 26 4
gpt4 key购买 nike

我有 A 类。我有 B 类。我有许多从 B 类派生的类。

我想实现这一点:B 的派生对象应该可以访问 A 的 protected 变量。如果每个派生对象都包含 A 的一个实例,那么这将需要大量内存。所以我想这次公共(public)继承不是一个好主意。我该如何解决这个问题?谢谢!

最佳答案

您可以使用 friend 和访问器函数来完成。这确实信任 B 远离 A 的隐私 - 没有看到让 only B 的好方法> 和子类访问 A 的 protected 成员,除非 AB 之间存在继承关系。

class A {
friend class B;
protected:
int X;
};


class B {
protected:
static int getX(A const & a) { return a.X; }
};

class C : public B {
public:
void foo(A const & a) { int bar = getX(a); }
};

关于c++ - 不包含继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573752/

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