Я знаю, что таких вопросов много, но я не уверен, что именно я делаю неправильно.У меня есть два класса, Player и HumanPlayer.HumanPlayer должен наследоваться от класса Player.Когда я пытаюсь сделать конструкторы в файле HumanPlayer.cpp и скомпилировать, я получаю следующие ошибки:
Ошибка 2, ошибка LNK1120: 1 неразрешенный внешний код
Ошибка 1, ошибка LNK2001: неразрешенныйвнешний символ "public: __thiscall Player :: Player (void)" (?? 0Player @@ QAE @ XZ)
Я прочитал, что вам нужно явно вызвать базовый класс в конструкторе производного класса, поэтомуЯ считаю, что я сделал это, так как компилятор не выдает ошибку об этом.Если бы кто-нибудь мог указать мне правильное направление, это было бы здорово.Я также использую MS Visual Studio 2010.
Вот эти файлы:
//Player.h
#pragma once
#include <string>
using namespace std;
class Player{
public:
Player();
Player(const string &);
void setName(string);
string getName();
void sowSeeds();
void play();
private:
string name;
};
//Player.cpp
#include <iostream>
#include "Player.h"
using namespace std;
//constructor
Player::Player(const string &enteredName){
name = enteredName;
}
//HumanPlayer.h
#pragma once
#include <string>
#include "Player.h"
using namespace std;
class HumanPlayer : public Player{
public:
HumanPlayer();
HumanPlayer(const string &);
private:
};
//HumanPlayer.cpp
#include <iostream>
#include "Player.h"
#include "HumanPlayer.h"
using namespace std;
//constructor
HumanPlayer::HumanPlayer() : Player(){
}
HumanPlayer::HumanPlayer(const string &enteredName) : Player(enteredName){
}