我从编译器收到此错误消息:

undefined reference to `Pawn::Pawn(Piece::Color)'

当我这样做时会发生这种情况:
// board[][] contains pointers to Piece objects
board[0][0] = new Pawn(Piece::BLACK);

这是 Pawn 类的一部分:
// Includes...
#include "piece.h"
// Includes...

class Pawn : public Piece {
public:
        // ...

        // Creates a black or white pawn.
        Pawn(Color color);

        // ...
};

这是 Piece 类的一部分:
class Piece {
public:
        // ...

        enum Color {WHITE, BLACK};

        // ...
};

为什么我会收到此编译器错误?

最佳答案

该错误与枚举没有任何关系。您需要定义 Pawn(Color) 构造函数,例如,

Pawn::Pawn(Color)
{
...
}

关于c++ - 对枚举的 undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3990739/

10-09 13:41