gpt4 book ai didi

C++ 访问远离当前类层次结构的对象

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

我认为这是一个非常新的问题,但我从未找到答案。我不知道如何准确地表达这个问题,但我经常发现我必须访问就当前层次结构而言与当前对象“相距甚远”的对象。我只是想确保这是执行此操作的正确(唯一)方法。

这与从 main 传递参数一起进行。我发现有些远离main的对象需要多次传入一个参数。远离main的对象如何从命令行获取信息?

例如对于第一种情况,对于 4 个类...

class A{
B b;
//need to check status of D

//choice 1
b.get_c().get_d().get_status();

//choice 2
const C& c = b.get_c();
const D& d = c.get_d();
d.get_status();
};

class B{
public:
C c;
const C& get_c() {return c;}
};

class C{
public:
D d;
const D& get_d() {return d;}
};

class D{
public:
bool check_status();
};

比如说,A 是汽车,B 是门组件,C 是门,D 是锁。然后 A 必须检查说,是否锁定,否则阻止启动。

选择3是直接从A调用D的方法,我得在C、B、A做几层check_status(),然后返回D、C、B.check_status()。

所有这些对子对象的调用(如果代码稍微复杂一点的话)不会产生大量开销吗?

谢谢。

最佳答案

这类问题的答案总是一样的:不要担心,除非它成为一个问题,然后进行测量以确定哪个选项是最好的。是的,调用子对象会产生开销,但对于您给出的示例(以及许多现实生活中的示例),这种开销是不可避免的(并且编译器可能会优化其中的一些开销)。

关于C++ 访问远离当前类层次结构的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7606760/

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