我必须在class-header中有一个“configset”结构,如下所示:
class A {
public:
static configset *getnext();
}
当然编译器抱怨configset不是一个类型,但它是在另一个头文件中实现的,还有一些函数。因此,我不能只包含该头文件,编译器会抛出这些函数多次定义的错误。但是如何在我的类头中获取配置集?只是复制也不会起作用,因为编译器会抛出一个结构被定义两次的错误。
答案 0 :(得分:1)
转发声明configset
或将您在头文件中定义的函数声明为inline
。
答案 1 :(得分:1)
使用转发声明,如下所示:
// Forward declare configset. Tells compiler that the class/struct is defined in
// another translation unit
struct configset;
class A {
public:
static configset *getnext();
};
请注意,只有您只使用指向configset的指针时,这才有效。
答案 2 :(得分:1)
将configset
方法的实现移动到单独的.cpp(非标头)文件中。