C++ 正确的方法是什么?调用';在一个指针对一个指针对一个指针中?
我有一个3D指针。我把它指向一个指向“character”对象的指针。该对象作为其类的成员,具有指向另一对象类型的指针。让我们称之为“死亡”对象类型。那个die对象类型有一个我想使用的函数 我已经按我认为应该的方式设置了它,但是我会出错。我想我可能明白它告诉我什么,但不确定是否有一个简单的解决办法。如果是的话,我很乐意这么做。非常感谢你的帮助 我试着把它做成一个3D指针,但我没有得到不同的结果C++ 正确的方法是什么?调用';在一个指针对一个指针对一个指针中?,c++,function,pointers,2d,C++,Function,Pointers,2d,我有一个3D指针。我把它指向一个指向“character”对象的指针。该对象作为其类的成员,具有指向另一对象类型的指针。让我们称之为“死亡”对象类型。那个die对象类型有一个我想使用的函数 我已经按我认为应该的方式设置了它,但是我会出错。我想我可能明白它告诉我什么,但不确定是否有一个简单的解决办法。如果是的话,我很乐意这么做。非常感谢你的帮助 我试着把它做成一个3D指针,但我没有得到不同的结果 int main() { srand (time(0)); int setter =
int main()
{
srand (time(0));
int setter = 1;
character ***charPtr = new barbarian**(setter);
charPtr->ptrAttackDieOne->roll();
cout << "The roll is" << charPtr->ptrAttackDieOne->getRoll() << endl;
return 0;
}
intmain()
{
srand(时间(0));
int setter=1;
字符***charPtr=新野蛮人**(setter);
charPtr->ptratackdieone->roll();
cout getRoll()charPtr',属于非类类型“character**”
charPtr->ptratackdieone->roll();
^
main.cpp:27:39:错误:请求'*>charPtr'中的成员'ptratackdieone',该成员为非类类型'character**'
cout getRoll()endl
要解除对三重指针的引用,您需要先将其遵从两次:
(**charPtr)->ptratackdieone->roll();
我还想指出,这不会“编译”:
character***charPtr=新野蛮人**(setter);
它尝试生成一个类型为barbarian**
的变量,并为其分配一个整数setter
,这是不允许的。如果要创建一个3D指针,每个级别都必须指向实际分配的内存。new
无法填充多个级别的间接寻址:
野蛮人***野蛮人家庭按urname分组=新野蛮人**[3];
对于(int i=0;i要取消对三重指针的引用,您需要先将其执行两次:
(**charPtr)->ptratackdieone->roll();
我还想指出,这不会“编译”:
character***charPtr=新野蛮人**(setter);
它尝试生成一个类型为barbarian**
的变量,并为其分配一个整数setter
,这是不允许的。如果要创建一个3D指针,每个级别都必须指向实际分配的内存。new
无法填充多个级别的间接寻址:
野蛮人***野蛮人家庭按urname分组=新野蛮人**[3];
因为(int i=0;很好。我误解了我在做什么。谢谢!听起来很好。我误解了我在做什么。谢谢!