2017-07-28 8 views
-1

すべてはうまくコンパイルされました。ここでは、thisthis、およびthisを含む10個の異なる質問を解決しようとしました。私を殺さないでください、私は約3時間頭に頭を打ちました。また、問題のファイルを単独でビルドしようとしましたが、うまく構築されているようですが、プロジェクトをビルドするときにも同じエラーが発生します。Class :: Class()への未定義の参照と1つのファイル内の関数? C++

私はインクルード ".h"を可能な限りcppファイルに移動させようとしましたが、これは大部分の時間でしたが、依然として役に立ちませんでした。私は変更するとその行に

BitBoards *newBoard = new BitBoards; 

BitBoards *newBoard; 

にエラーが表示されなくなりますが、それはまだ私に「未定義のrefrenceに」newBoard->機能を提供します。

私は試してみるべきことが明らかに明白かどうか、またはっきりしないことはありますか? Ai_Logic.cpp

//master bitboard for turn 
BitBoards *newBoard = new BitBoards; 
^^here 
//master zobrist object for ai turn 
ZobristH *mZobrist = new ZobristH; 

//master evaluation object - evaluates board position and gives an int value (- for black) 
evaluateBB *mEval = new evaluateBB; 

newBoard->constructBoards(); 
^^and here as well as every instance of newBoard-> below 

Ai_Logic.h:

#include <string> 
#include <stack> 
#include <thread> 
class Pieces; 
class ZobristH; 
class BitBoards; 
class MoveGen; 
class evaluateBB; 
class HashEntry; 

class Ai_Logic 
{ 
//stuff 
}; 

Ai_Logic.cpp

#include "ai_logic.h" 

#include <algorithm> 
#include <stdlib.h> 
#include <time.h> 
#include <iostream> 

#include "externs.h" 
#include "move.h" 
#include "evaluatebb.h" 
#include "bitboards.h" 
#include "movegen.h" 
#include "zobristh.h" 

BitBoards.h

エラーはここに私の論理ファイルにポップアップ表示します

class MoveGen; 
class ZobristH; 
class Move; 

class BitBoards 
{ 
//stuff 
}; 

BitBoards.cpp

#include "bitboards.h" 
#include <cmath> 
#include <random> 
#include <iostream> 
#include <string> 
#include <cstdio> 

#include "externs.h" 
#include "movegen.h"  

を私は問題が私のMoveGen.h/CPPから来るかもしれないと思うが、私は全くわからないMoveGen.h

#include <iostream> 
#include <string> 
#include "move.h" 

class Pieces; 
class BitBoards; 
class ZobristH; 


class MoveGen 
{ 
//stuff 
}; 

MoveGen.cpp

#include "movegen.h" 
#include "bitboards.h" 
#include "Pieces.h" 
+1

ヘッダーファイルのクラス宣言には、中かっこや実際の宣言が含まれていないようです。それはフォーマット上の問題か、.hファイルは本当にそのように見えますか? – vincent

+0

いいえ、申し訳ありませんが、それは非常に不明であったと思います。彼らには、私が含まなかったたくさんの変数と機能があります。彼らは閉じ括弧を持っています。 –

+0

この動作は、 'BitBoards'がPODかどうかにも依存し、デフォルトコンストラクタを持っています。 – miradulo

答えて

0
#include bitboards.cpp 

Ai_Logicファイルで、このトリックを行ったようです。理由はまったく分かりません。

+1

「宣言」や「前方宣言」を理解できないようです。これは検索する用語です。 – vincent

関連する問題