use*_*514 1 c++ arrays pointers data-structures
这是在C++代码中
YInterface ** Y_list;
int numberofYInterfaces;
Run Code Online (Sandbox Code Playgroud)
然后
numberofYInterfaces=1;
Y_list = new YInterface *[numberofYInterfaces]; //What ??????
Run Code Online (Sandbox Code Playgroud)
我很难描绘Y_list的结构?然后想象我的混淆当数字的YInterfaces变成多于一个,甚至是2?
OOPS抱歉,我忘记写下面的声明:
Y_list[i]= new AnotherClass();
Run Code Online (Sandbox Code Playgroud)
//以后我的原始问题.感谢Eric Fortin的单挑.注意:AnotherClass继承自YInterface.
任何帮助表示赞赏
Rob*_*edy 12
声明时Y_list,您会得到一个带有未指定值的变量:
Y_list +-------+ | | +-------+
当你赋值时new[],它指向new[]分配的任何东西,在这种情况下是一个指针数组:
Y_list array
+-------+ +-------+
| o---+---->| |
+-------+ +-------+
| |
+-------+
| |
+-------+
| |
+-------+
| |
+-------+
那时,你还没有任何YInterface对象.如果它们存在,你只需要分配空间来保存指向它们的指针.
最后,为其中一个元素赋值Y_list[i] = new AnotherClass.那是一个YInterface后代存在,但到目前为止你只有一个.在循环中运行该代码,您将获得多个实例.但是你仍然只有一个数组,并且有一个指向该数组的指针.
Y_list array AnotherClass
+-------+ +-------+ +-------+
| o---+---->| o---+---->| |
+-------+ +-------+ | |
| | | |
+-------+ | |
| | | |
+-------+ +-------+
| |
+-------+
| |
+-------+
要释放所有这些,请记住delete每个new语句都有一个语句,每个语句delete[]一个new[]:
delete Y_list[i];
delete[] Y_list;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1291 次 |
| 最近记录: |