すべてはうまくコンパイルされました。ここでは、this、this、および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"
ヘッダーファイルのクラス宣言には、中かっこや実際の宣言が含まれていないようです。それはフォーマット上の問題か、.hファイルは本当にそのように見えますか? – vincent
いいえ、申し訳ありませんが、それは非常に不明であったと思います。彼らには、私が含まなかったたくさんの変数と機能があります。彼らは閉じ括弧を持っています。 –
この動作は、 'BitBoards'がPODかどうかにも依存し、デフォルトコンストラクタを持っています。 – miradulo