我有以下问题,有人有好主意吗?
class Vector_2d;
namespace Utils {
class Align_vector : public Vector_2d {
protected:
bool check_range(int x, int y);
public:
enum alignment {left, right, up, down};
Align_vector(Alignment alignment);
void set_alignment(Alignment alignment);
Alignment get_alignment();
};
}
错误为:
错误:不完整类型“class Vector_2d”的使用无效
但是怎么会有错误呢?
1条答案
按热度按时间bvjxkvbb1#
class Vector_2d;
这只声明了一个以该名称存在的类。若要从它继承,则需要提供完整的类定义。
如果这些类有单独的头文件,请确保在定义继承的类之前包括这些头文件。
简单地说,当类
B
从类A
继承时,类B
的对象将具有A
子对象作为其布局的一部分。因此,如果没有
A
的完整定义,就无法定义B
的布局,因为它依赖于A
。