我有以下情況:如何在同一結構中調用一個對象的方法,從另一個對象
class B
{
public:
void methodInB();
};
class C
{
public:
void methodInC();
};
class A
{
public:
void methodInA();
private:
B objB;
C objC;
};
void A::methodInA()
{
objB.methodInB();
}
int main()
{
A objA;
objA.methodInA();
return 0;
}
我希望能夠調用從B::methodInB()
內C::methodInC()
,但我不知道是什麼這種方式將是(不是沒有搞亂全局)。
我的第一個想法是添加一個C* pC
指針作爲B
的成員,然後從methodInB()
稱它爲pC->methodInC
。這需要我在使用該方法之前從A
內設置指針(可能在A
的構造函數中)。我的問題是如果我添加一個D
和E
對象,我可能需要調用B
中的其他對象,而我不想用指針填充類定義。
有沒有其他方式做到這一點?對該對象所屬對象的隱式引用?有點像this
但父母?所以我至少可以做parent->objC->methodInC()
?
你'objB'和「objC」不知道對方。沒有一般的「知道你屬於誰」這樣的事情。如果你想要的話,你可以用''''this'指針構造'objB'和'objC',但是你必須明確地告訴它們它們被包含,或者在哪裏找到兄弟。 –
沒想到有。不過,這就是爲什麼我問。我知道兄弟姐妹不知道彼此,所以我如何從另一個人打電話給他人? – Kian
您可以使用對其他對象的引用構建每個引用,或者兩者都引用父對象。或者,您可以重新設計並使'A' *從'B'和'C'繼承*。 –