Class A
{
A(B& b) : mb(b)
{
// I will not access anything from B here
}
B& mb;
};
Class B
{
B(): a(*this)
{}
A a;
}
我遇到过这种情况可能是次,包含的对象需要使用容器功能。在包含对象中引用容器对象似乎是实现此目的的最佳方法。当然,我可以用一个指针来做到这一点,这样我可以有一个setter setB(B* b) {mb = b;}
,我可以在以后确定B被初始化后调用,但我更愿意使用引用来实现这一点,这意味着我需要在初始化它构造函数,因此问题。可以在以下示例中通过* this构造函数
我总是好奇的使用情况下,这样的紧耦合不在乎给予几个例子? – 2010-03-20 19:56:52
@dribeas:我使用这个,如果我有一个类,我可以明确地将它的职责分解成不同的任务,然后为每个任务分配助手类,同时允许从“拥有”类访问所需的数据。就我个人而言,我会让'A'为'B'的嵌套私人类来显示所有者/拥有的关系。 – Troubadour 2010-03-20 20:20:06