我正在为 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 指向 &a 但 p2 指向另一个地址。如果我更改子类从父类继承的顺序,p2 将指向 &a 但 p1 将指向另一个地址。为什么会这样?