1
继承人我的问题,如果我通过函数将类A中的变量传递给类B,然后在类B中将该变量传递给其他函数进行测试,那么它工作正常。 但是,如果我传递变量从A到B,则尝试将其分配给类B中的变量,它给人的错误无故传递变量时C++访问冲突
//Globals.h
enum TypeofObject { CIRCLE, SQUARE, RECTANGLE, DIAMOND };
//Object.h
#include "Globals.h"
class Object
{
void Update();
private:
TypeofObject currentObject;
CollisionDetection * gameCollision;
};
//Object.cpp
void Object::Update()
{
//Do stuff here
gameCollision -> testCollision(currentObject);
}
//CollisionDetection.h
#include "Globals.h"
class CollisionDetection
{
public:
void testCollision(TypeofObject currentObject);
private:
void checkObjects(TypeofObject currentObject);
TypeofObject currentObject;
}
//CollisionDetection.cpp
void CollisionDetection::testCollision(TypeofObject curObject)
{
currentObject = curObject; //<- If I have this then it gives access violation error
checkObjects(curObject); //<- Passing it from one function to the next works
//fine but I want to assign it to currentObject so
//it doesnt need to be passed
}
我想'Object :: gameCollision'没有初始化。 – user2093113
你当前的对象是私有的,你应该在那里使用一个指针。让我试着更清楚一点:在你的CollisionDetection类中,尝试制作TypeofObject * currentObject,然后在CollisionDetection :: testCollision(Pointer here!)中接收一个指向TypeofObject的指针,然后尝试使currentObject = curObject; –
@ user2093113如果Object :: gameCollission未初始化,我们将在gameCollission-> testCollision()中获取访问冲突。 – Jagannath