我正在爲C++類製作遊戲,並且遇到指針問題。爲了給物品裝備物品,我爲不同的可穿戴物品類型創建了8個指針。我還創建了一個名爲noItem的類,它繼承了所有的項目類型,並將所有屬性初始化爲零。當我創建我的角色時,我創建了一個noItem實例,並讓所有指針指向該實例,但是當我檢查指針指向的地址時,只有其中一個指向noItem實例的地址。將多個指針分配給同一個對象並檢查地址後,只有一個指針指向右邊的指針
我試着重新排列指針賦值的順序,它總是有相同的指針,它具有正確的指針,而不管何時使它指向noItem的實例,其餘指向接近實例地址的地址noItem,但從來沒有在那裏。我甚至嘗試爲每個項目類型創建一個noItem的實例,但同樣的問題發生了。
class parent1 {
};
class parent2 {
};
class child : public parent1, public parent2 {
};
int _tmain(int argc, _TCHAR* argv [])
{
parent1 *p1;
parent2 *p2;
child a;
p1 = &a;
p2 = &a;
cout << &a << endl;
cout << p1 << endl;
cout << p2 << endl;
system("pause");
}
在本實施例P1指向&一個但P2點到另一個地址。如果我更改孩子從父類繼承的順序,則p2將指向& a,但p1將指向另一個地址。爲什麼會發生?
能否請您發佈的代碼? – Stefan
問題中有足夠的信息,你只需要閱讀英文。 – MSalters