1
私はPieceStrategyクラスを持っている含めるは依存関係
#include "PieceStrategy.cpp"
class QueenStrategy : public PieceStrategy {}
を今円形で問題が含まれて発生します。しかし、この場合、私は前方宣言を使用することはできません。
どうすればよいですか?
私はPieceStrategyクラスを持っている含めるは依存関係
#include "PieceStrategy.cpp"
class QueenStrategy : public PieceStrategy {}
を今円形で問題が含まれて発生します。しかし、この場合、私は前方宣言を使用することはできません。
どうすればよいですか?
this
piece.hpp
#include "strategy.hpp"
class Piece
{
std::unique_ptr<Strategy> strategy;
public:
static Piece Pawn();
void PromoteToQueen();
};
piece.cpp
#include "pawn.hpp"
#include "queen.hpp"
Piece Piece::Pawn()
{
Piece p;
p.strategy = std::make_unique<PawnStrategy>();
return p;
}
void Piece::PromoteToQueen()
{
strategy = std::make_unique<QueenStrategy>();
}
あなたはCPP(実装)ファイルを含めるべきではありません。なぜあなたはこれをやっている? –
Doing 'this = new ...'は期待通りに動作しません。 '* this = ...'は部分的に動作するかもしれませんが、 'this'を新しいクラスのインスタンスにしません。 –
あなたの問題については、クラス内でメンバ関数をインラインで定義しないでください。代わりにソースファイルで行います。 '' QueenStrategy.h "'ヘッダファイルを '' PieceStrategy.h "'ヘッダファイルに含める必要はありません。 –