私は解決できないリンカの問題を抱えています..すでに私が考えることができるものはすべて試しました。ベースクラス(人)と派生クラス(ディーラー)があり、CardStack クラスからコンストラクタを呼び出したいだけです。 Dealer クラスのメンバーです。
これが私のコードです:
Person.h
#ifndef PERSON_H
#define PERSON_H
#include "Card.h"
#include "Hand.h"
class Person
{
public:
Person(void);
virtual ~Person(void);
virtual bool TakeCard(Card c);
virtual bool Lost(void);
protected:
virtual void CheckLost(void);
bool b_Lost;
Hand m_Hand;
};
#endif
ディーラー.h
#ifndef DEALER_H
#define DEALER_H
#include "Person.h"
#include "Card.h"
#include "CardStack.h"
class Dealer : public Person
{
public:
Dealer(int stackcount);
virtual ~Dealer(void);
bool TakeCard(Card c);
bool Lost(void);
Card GiveCard(Card c);
protected:
void CheckLost(void);
CardStack m_GameStack;
};
#endif
ディーラー.cpp
#include "Dealer.h"
Dealer::Dealer(int stackcount) : Person(), m_GameStack(stackcount)
{
};
Dealer::~Dealer(void)
{
};
bool Dealer::TakeCard(Card c)
{
if(!b_Lost || m_Hand.GetTotal() <= 17)
{
m_Hand.Take(c);
CheckLost();
return true;
}
return false;
};
void Dealer::CheckLost()
{
if (m_Hand.GetTotal() > 21)
{
b_Lost = true;
}
};
bool Dealer::Lost()
{
return b_Lost;
};
思いつく限りのことを正直にやってみましたが、何が間違いなのかわかりませんでした...
Dealer.cpp をコンパイルしたときの出力は次のとおりです。
1>Dealer.obj : エラー LNK2019: 未解決の外部シンボル "public: virtual __thiscall Person::~Person(void)" (??1Person@@UAE@XZ) 関数 __unwindfunclet$ で参照されています??0Dealer@@QAE@H@ $0
1>Dealer.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall Person::TakeCard(class Card)" (?TakeCard@Person@@UAE_NVCard@@@Z)
1>Dealer.obj: エラー LNK2001: 未解決の外部シンボル "public: virtual bool __thiscall Person::Lost(void)" (?Lost@Person@@UAE_NXZ)
1>Dealer.obj: エラー LNK2001: 未解決の外部シンボル "保護: 仮想 void __thiscall Person::CheckLost(void)" (?CheckLost@Person@@MAEXXZ)