c++ - 通过指向指针数组的指针访问子类的属性
问题描述
假设我想实现一袋蠕虫。我有类蠕虫,它有一个int属性 ID。我还有一个班级包:
class Bag{
// pointer to a 1D array of pointers to all the worms
Worm** population;
// constructor
Bag(){
// initiate 1D population of the worms
int N = 100;
Worm** population = new Worm*[N];
for (int i=0; i<N; i++){
Worm new_worm(i);
population[i] = &new_worm;
}
}
}
因为N
在编译时已知我不确定是否必须动态分配数组?
我的问题是稍后在我想执行的代码中:
Bag bag();
int ID = bag.population[10]->ID;
并且代码被编译但是当我执行时我得到Segmentation fault: 11
. 我已经检查(通过评论)问题是由 ID 提取的确切行引起的。
我应该如何访问包中类 Worm 的字段和调用方法?
解决方案
用 this->population 或类似的东西替换 Worm** population = new Worm*[N]。
您正在分配局部变量“population”而不是成员“population”-> bag.population 仍然为空
推荐阅读
- javascript - 如何在不知道 NextJS 上的静态路径的情况下生成动态页面?
- linux - 如何存储 find 生成的文件,即实际文件和内容作为文件而不是 find 的控制台输出?
- lua - 如何使用 IUP THEME 属性/DEFAULTTHEME 全局属性
- php - 在 Laravel 中以同名保存会话安全吗?
- reactjs - 如何在不刷新页面的情况下在 ReactJS 中重新加载?
- c++14 - 为什么我在二叉树的对角遍历代码中出现 SIGBART 错误?
- winapi - ShowWindow 调用可防止通过 SetLayeredWindowAttribute 更改 alpha
- bash - 如何找出一个数字与文件中下一个相同数字的出现之间有多少行?
- angular - 如果条件失败,Angular 11
- reactjs - 反应原生 setInterval useState