在C++中的类之间发送数组
Sending array between class in C++
我遇到了一个问题。我想创建IOBjekt
的新数组,我已经填充了数组,现在我想将数组发送到另一个类(Hra
)。你能帮我指点迷津吗。我不知道如何foreach这个数组和从对象调用方法。
保存到阵列
IObjekt **store = new IObjekt*[3];
for (int i = 0; i < 3; i++)
{
store[i] = new BMPObjekt(aHraciaPlocha, "ball.bmp");
cout << store[i] << endl;
}
aHra = new Engine(aHraciaPlocha, *store);
分析阵列
Engine::Engine(ISystem * plocha, IObjekt *objekty)
:aHraciaPlocha(plocha), aObjekty(objekty), aSkore(0)
{
for (int i = 0; i < 3; i++) {
IObjekt *objekt = &objekty[i]; // This doesnt work
cout << objekt->dajX << endl;
}
}
谢谢。
我猜BMPObjekt
和IObjekt
之间的关系(您没有显示)使您无法轻松地从外部代码中删除间接级别。因此,您需要为调用的代码添加一个间接级别,从调用中删除一个*
:
aHra = new Engine(aHraciaPlocha, store);
Engine::Engine(ISystem * plocha, IObjekt **objekty)
:aHraciaPlocha(plocha), aObjekty(objekty), aSkore(0)
{
for (int i = 0; i < 3; i++) {
IObjekt *objekt = objekty[i];
cout << objekt->dajX << endl;
}
}
相关文章:
- 动态分配的数组和静态数组之间的区别
- 删除[i] 数组和删除数组 [i] 之间的区别
- C++堆栈中数组之间的间隙
- 使用STD :: String和字符数组之间的选择
- 如何在不复制数据的情况下在平面数组和多维数组之间进行转换?
- 如果 strlen 在 char 数组之间遇到空格,它会怎么做
- 数组之间的特征行交叉积
- 为什么这两个实现多维数组之间会有如此巨大的执行时间差
- 字符指针和字符数组之间的区别
- 在一维和二维数组之间进行选择
- char阵列[]和char *数组之间有什么区别
- 为什么数组之间的==相等比较不起作用
- 为什么字符数组之间的这种比较不起作用?
- 分配器和 C++ 中内置数组之间的区别
- 无已知转换 在带有 std::vector 的无符号字符的 typedef 数组之间
- 链表和结构数组之间的区别
- 字符串对象和以 null 结尾的字符数组之间的差异
- 单指针数组和双指针数组之间的区别
- C++:反转数组中的字符串.在两个不同的数组之间交换字符串
- c++在3d数组之间传递双值