C++ 正确的方法是什么?调用';在一个指针对一个指针对一个指针中?

C++ 正确的方法是什么?调用';在一个指针对一个指针对一个指针中?,c++,function,pointers,2d,C++,Function,Pointers,2d,我有一个3D指针。我把它指向一个指向“character”对象的指针。该对象作为其类的成员,具有指向另一对象类型的指针。让我们称之为“死亡”对象类型。那个die对象类型有一个我想使用的函数 我已经按我认为应该的方式设置了它,但是我会出错。我想我可能明白它告诉我什么,但不确定是否有一个简单的解决办法。如果是的话,我很乐意这么做。非常感谢你的帮助 我试着把它做成一个3D指针,但我没有得到不同的结果 int main() { srand (time(0)); int setter =

我有一个3D指针。我把它指向一个指向“character”对象的指针。该对象作为其类的成员,具有指向另一对象类型的指针。让我们称之为“死亡”对象类型。那个die对象类型有一个我想使用的函数

我已经按我认为应该的方式设置了它,但是我会出错。我想我可能明白它告诉我什么,但不确定是否有一个简单的解决办法。如果是的话,我很乐意这么做。非常感谢你的帮助

我试着把它做成一个3D指针,但我没有得到不同的结果

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;很好。我误解了我在做什么。谢谢!听起来很好。我误解了我在做什么。谢谢!