我有一个很奇怪的问题。
我有3个文件:
Figure.h:
#ifndef FIGURE_H
#define FIGURE_H
namespace figure
{
class figure
{
public:
figure(position &p,color c);
virtual bool canMove(const position &p)=0;
virtual bool move(const position &p)=0;
protected:
color col;
position &p;
};
class king : public figure
{
};
};
#endif // FIGURE_H
king.h:
#ifndef KING_H
#define KING_H
#include "./figure.h"
namespace figure
{
class king : protected figure
{
};
}
#endif // KING_H
和king.cpp:
#include "king.h"
bool figure::king::canMove(const position &p)
{
}
我用它编译:
gcc -std = c11 -pedantic -Wall -Wextra
但是问题是我得到了这个错误:
/src/figure/figure.h:24:45:错误:否'bool
图中:: king :: canMove(const position&)的成员函数
类别“ figure :: king”
我该怎么办?
非常感谢你!
最佳答案
如错误消息所述,您尚未声明方法canMove()
。只需在king
类中声明它
namespace figure
{
class king : public figure
{
public:
bool canMove(const position &p);
};
}
关于c++ - 命名空间中的抽象方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15938285/