gpt4 book ai didi

c++ - 设计访问对象所有者的元素

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

假设我有两个类:

Class A {
B b;
Foo bar;
}

Class B {
// some stuff
}

由于类型 A 的对象拥有类型 B 的对象,因此 A 可以访问 B 的某些内容。如果类型 B 的对象必须访问它拥有的对象(类型A)?例如。如果我有一个 B 类型的对象,并且想获取它所属对象的 bar 值。

每次创建 B 时都将对 A 的引用添加到 B 是一种好习惯吗?或者某种委托(delegate)模式?

最佳答案

通常的方法是在类 B 中使用父指针:

class A {
A():b(this){}
B b;
Foo bar;
};

class B {
B(A *parent=0)
:p_parten(parent){}
// some stuff
void func(){
if (p_parent)
p_parent->bar.something();
}
A *p_parent;
};

关于c++ - 设计访问对象所有者的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41299257/

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