我试图用运算符 new 创建2个类对象,但是当我试图创建一个新对象时,它表示第二个没有声明,如果我将接口更改为其他东西,它也会给出错误。
void Game::start(){
// clear the screen
scene->clear();
//player1 = new Player("Player 1");
//player2 = new Player("Player 2");
player = new Player("Player1");
interface = new Interface();
interface2 = new Interface();
//Interface interface;
interface->placeCombatColumn();
//interface.placeCombatColumn();
drawGUI();
interface->placeCombat();
}
错误:
播放器未在此范围内声明
未在此范围内声明interface2
答案 0 :(得分:1)
你应该有一个(可能的)私人会员
Player * player;
你班上的,就像这样:
class Game {
public:
void start();
private:
Player * player;
};
这样,您可以从player
类方法(所有这些方法,包括Game
)中引用变量start()
。同样适用于其他变量,例如interface
。
如果您需要一个变量作为方法的本地变量(即,您不需要在方法范围之外),您必须声明它,至少在赋值时它,在方法内:
void Game::start() {
// clear the screen
scene->clear();
Player * player = new Player("Player1");
...