我有兩個類A和B應該都使用類A被創建的類B的指針的第三類P的兩個指針和兩個指針作爲參數傳遞(這裏是我不知道如何的問題)。還有B,其應換指針也A. 我不知道該怎麼A的指針傳遞到B,以交換他們在這兩個班的內部交換()函數(A,B)。 他們必須在全球範圍內定義嗎?或者是否可以傳遞地址並交換這些地址?交換指針
Class B:
{
public:
B(P *p1, P *p2)
{
mB_p1 = p1;
mB_p2 = p2;
};
private:
P *mB_p1;
P *mB_p2;
void swapPointers();
}
Class A:
{
public:
A()
{
mA_p1 = new P();
mA_p2 = new P();
a = new B(mA_p1, mA_p2);
};
B *b;
private:
P *mA_p1;
P *mA_p2;
}
B::swapPointers()
{
P *temp;
temp = mB_p1;
mB_p1 = mB_p2;
mB_p2 = mB_p1;
}
據我知道的是,我有兩個班,現在每兩個指針。當我用B的交換函數交換它們時,A中的指針沒有任何反應,這是我想改變的。雖然我不知道什麼是正確的方式。
雖然整體思路看起來很危險,你會傳遞到不指針爲P,而是指向A的領域mA_p(也爲P **),然後進行交換。但是,這又會與OOP的基本原理之一相矛盾:數據封裝 –
user3159253
我想我會再次重新設計我的設計...... – evolved