gpt4 book ai didi

c++ - 容器类成员交互

转载 作者:行者123 更新时间:2023-11-30 03:53:58 24 4
gpt4 key购买 nike

我想获得一些关于如何改进我的整体程序设计的建议。

我有一个主类,其中有两个成员经常需要相互交互。这个类似容器的类有一个 Initialize() 函数,它初始化两个成员,以及其他提供对外部世界的访问的函数:

class Foo {
public:
bool InitializeAandB();
void UseFoo();

private:
TypeA a;
TypeB b;
};

在调用 UseFoo() 之后的某个时刻,a 将需要调用 b 的公共(public)函数之一。所以,假设 TypeA 有一个这样的成员函数:

void TypeA::Function() {
if (true) {
TypeB *bpointer;
bpointer->Interact(); // Need pointer to b here.
}
}

TypeATypeB 是独立的实体,不能组合成一个类。碰巧这些独立的实体需要在不同时间相互交互。

我不想将 ab 公开,因为它们不应该从外界可见。在 Foo 中添加 TypeATypeB 似乎是一个 hacky 修复。也不理想,因为 TypeATypeB 都需要了解 Foo 而他们只需要了解彼此。公共(public) GetA()GetB() 访问器函数也是如此。

第三个选项是将 TypeB* 成员添加到 TypeA 并将 TypeA* 成员添加到 TypeBInitializeAandB() 期间设置。但这在某种程度上似乎是多余的,就像我缺少更好的整体设计一样。

有没有更好的设计方法?

最佳答案

如何将 TypeB * 作为参数传递给 TypeA::Function()(反之亦然)?

关于c++ - 容器类成员交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29837021/

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