c++ 错误:不完整类型的使用无效

ecfsfe2w  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(131)

我有以下问题,有人有好主意吗?

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”的使用无效
但是怎么会有错误呢?

bvjxkvbb

bvjxkvbb1#

class Vector_2d;这只声明了一个以该名称存在的类。
若要从它继承,则需要提供完整的类定义。

class Vector_2d {
  // Your code goes here
};

class Align_vector : public Vector_2d {
  // Other stuff
};

如果这些类有单独的头文件,请确保在定义继承的类之前包括这些头文件。

#include <vector_2d.h>

namespace Utils {
    class Align_vector : public Vector_2d {
      // Other stuff
    };
}

简单地说,当类B从类A继承时,类B的对象将具有A子对象作为其布局的一部分。
因此,如果没有A的完整定义,就无法定义B的布局,因为它依赖于A

相关问题