我从我的编译器收到此错误消息:
undefined reference to `Pawn::Pawn(Piece::Color)'
Run Code Online (Sandbox Code Playgroud)
当我这样做时会发生这种情况:
// board[][] contains pointers to Piece objects
board[0][0] = new Pawn(Piece::BLACK);
Run Code Online (Sandbox Code Playgroud)
这是Pawn类的一部分:
// Includes...
#include "piece.h"
// Includes...
class Pawn : public Piece {
public:
// ...
// Creates a black or white pawn.
Pawn(Color color);
// ...
};
Run Code Online (Sandbox Code Playgroud)
这是Piece类的一部分:
class Piece {
public:
// ...
enum Color {WHITE, BLACK};
// ...
};
Run Code Online (Sandbox Code Playgroud)
为什么我收到此编译器错误?
该错误与枚举没有任何关系.你需要定义Pawn(Color)构造函数,例如,
Pawn::Pawn(Color)
{
...
}
Run Code Online (Sandbox Code Playgroud)
您需要为构造函数定义一个函数体.
此代码提供链接器错误:http://www.ideone.com/pGOkn
Pawn(Color color) ;
Run Code Online (Sandbox Code Playgroud)
此代码不会:http: //www.ideone.com/EkgMS
Pawn(Color color) {}
// ^^ define the constructor to do nothing.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1422 次 |
| 最近记录: |