我有这堂课:
#pragma once
#include <thread>
#include "Game.h"
class CPhysics {
CGame *mGame;
//[...]
public:
CPhysics(CGame *game);
//[...]
};
我将CGame
实例传递给CPhysics
的构造函数,如下所示:
#include "Game.h"
CGame::CGame() {
//[...]
mPhysics = new CPhysics(this);
}
但编译器不知道该怎么做,而是给我<error-type> *game
而不是CGame *game
。我想传递一个指向CGame
实例的指针。如果我删除星号会发送什么?我有点困惑。
编辑:实际错误如下:它不是CPhysics(CGame *game)
构造函数,而是要使用CPhysics(CPhysics &&)
。但CGame *const
不能也不会转换为const CPhysics &
。我猜这是由于错误类型。
答案 0 :(得分:-1)
使用mPhysics = new CPhysics(this);
时
你需要为CPhysics
定义一个没有任何参数的构造函数,并为Cpysics
重新定义一个新的赋值构造函数。