这是将一个类的数组传递给另一个类中的方法的正确方法吗
Is this the right way of passing an array of a class to a method in another class
我需要将gameEntity的数组传递给碰撞类中的方法
Class Game{
public: GameEntity *positions[48];
void DoAction();
Collision *col;
}
在Game.cpp 中
void GameEntity::DoAction(){
col = new Collision(positions[0]);
}
在构造函数中接受gamentity数组的类
class Collision{
public:
Collision(GameEntity * positions)
}
冲突中.cpp
Collision::Collision(GameEntity *springBalls)
{
for(int i = 0 ; i< 49; i++)
{
cout<<springBalls[0]<<endl
}
}
此声明,
GameEntity *positions[48];
是指向CCD_ 1的48个指针的数组。
我通过标准的main
签名来记住这一点。
接受可以是的正式论点
GameEntity** a
或者可以是例如
GameEntity* (&a)[48]
其中后者通过引用接收阵列,但出于这个原因,需要具有硬接线的阵列大小。
一般来说,在任何实际的地方,都更喜欢标准库抽象,如std::array
和std::vector
。
使用std::vector
问题1:
col = new Collision(positions[0]);
传入指针,而不是取消引用到第一个元素
col = new Collision(positions);
问题2:
您分配了48个GameEntity:s(索引为0-47)。但是你试图访问[48]
for(int i = 0 ; i< 49; i++)
问题3:
GameEntity *positions[48];
是一个指针数组。因此,冲突::冲突应该采用GameEntity**类型的参数
您可以对Collision对象执行以下操作:
碰撞::碰撞(GameEntity**springBalls){}
但是,你的弹球必须是一个由48个GameEntity对象组成的数组。
相关文章:
- C++从另一个类访问公共静态向量的正确方法是什么
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 检查哪个对象调用了另一个对象的对象方法
- 不能将方法返回的值用于另一个方法
- Qt将信号与另一个类方法连接
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 将一个类的方法指针存储到另一个类中
- 从另一个标头中的标头调用静态方法
- 无法"this"指针传递到另一个类并在 CPP 中调用该类的任何方法
- C++ |DLL / EXE - 如何从导出的类调用另一个类方法?
- 在销毁期间从另一个线程调用对象上调用方法是否未定义行为?
- 如果类"A"具有指向另一个类的指针,则"B" A 可以访问 B 类公共方法
- 如何在另一个类中使用类成员的正确方法?
- 重写另一个方法 [C++] 使用的超类回调函数
- 如何构造一个类型特征,可以判断一个类型的私有方法是否可以在另一个类型的构造函数中调用?
- 如何启用使用另一个类的静态方法的模板函数的自动推导,从而消除冗长的调用方代码
- 覆盖作为另一个类的好友的虚拟受保护方法
- 将vector<vector<double>>从x86平台中创建的一个进程发送到x64中构建的另一个进程的最快方法是什么
- 返回一个引用C++中另一个类对象的对象的有效方法