正确的方法是什么?调用指针到指针到指针内部的函数?
What is the Proper Way to do this? Calling a Function that's Inside a Pointer-to-a-Pointer-to-a-Pointer?
我有一个3D指针。我将其指向指向"字符"对象的指针。作为其类的成员,该对象具有指向另一个对象类型的指针。我们称之为"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;
}
main.cpp:25:14:错误:请求"*>charPtr"中的成员"ptrAttackDieOne",该成员属于非类类型的"字符**" charPtr->ptrAttackDieOne->roll(); ^
main.cpp:27:39:错误:请求"*>charPtr"中的成员"ptrAttackDieOne",该成员属于非类类型的"字符**" cout <<"The roll is" <<charPtr->ptrAttackDieOne->getRoll() <<>endl;
要取消引用三分球,您需要先尊重它两次:
(**charPtr)->ptrAttackDieOne->roll();
我还想指出,这不会编译:
character ***charPtr = new barbarian**(setter);
它试图创建一个类型为barbarian**
的变量,并给它分配一个整数setter
,这是不允许的。如果要创建3D 指针,每个级别都必须指向实际的、分配的内存。new
无法填充多个级别的间接寻址:
Barbarian*** barbarianFamiliesGroupedBySurname = new Barbarian**[3];
for (int i=0; i<3; i++) {
barbarianFamiliesGroupedBySurname[i] = new Barbarian*[2];
for (int j=0; j<2; j++) {
barbarianFamiliesGroupedBySurname[i][j] = new Barbarian("bob", weapon::axe);
}
}
相关文章:
- 如何正确编写指针函数声明?
- C++常规指针函数或模板
- 如何重新定义 C++ 指针函数?
- C++ 指向其他类函数的指针函数
- 指针到指针函数参数
- 将指向成员的指针函数传递到模板中
- C++ 在 none 常量指针函数中返回一个常量指针
- 如何使用指针函数编写/读取数组
- 是C 中的函数指针函数对象
- 如何从另一个类调用指向成员的指针函数
- 如何声明采用指向成员的指针函数的函数
- 如何构造一个以可变参数指针函数作为成员的类?
- c 通过值或指针函数语法
- 将typedef方法作为指针函数传递
- 从 Main 中的双指针函数打印出指针数组
- strcpy 对指针函数的引用
- 这是否仍然声明一种指针函数的别名?
- 将指向成员的指针函数与 std::shared_ptr 结合使用
- 'Incomplete type' 为标准::函数声明指向成员的指针函数模板参数时出错
- 从注入进程的 DLL 调用函数并更改指针函数的地址