我遇到了一个非常简单的程序问题。它抛出的错误:C++ - 没有适当的默认构造函数可用
error C2512: 'Player' : no appropriate default constructor available
IntelliSense: no default constructor exists for class "Player"
我有一种感觉它有事情做与声明Player类作为Game.h私有变量,但我不明白为什么。任何帮助将非常感激。
Game.h
#pragma once
#include "Player.h"
class Game
{
public:
Game(void);
void start(void);
~Game(void);
private:
Player player;
};
Game.cpp
#include "Game.h"
Game::Game(void)
{
Player p(100);
player = p;
}
void Game::start()
{
...
}
Game::~Game(void)
{
}
Player.h
#pragma once
class Player
{
public:
Player(int);
~Player(void);
private:
int wallet;
};
Player.cpp
#include "Player.h"
#include <iostream>
using namespace std;
Player::Player(int walletAmount)
{
wallet = walletAmount;
}
Player::~Player(void)
{
}
该问题与您的'Player'成员变量被声明为'private'无关。它与你在'Game'构造函数中初始化它有关。到目前为止,你已经得到了几个很好的答案,可以进一步解释。 –