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