-1

我有一堂课变得太大,应该分开。但是,理想情况下要拆分的类需要访问主类的变量。我正在尝试制作一个引用主类的模板类,但我似乎遇到了包含递归的问题。我搜索过,有人说你可以使用前向声明,但我仍然得到类型不完整的错误。我知道这是一个常见问题,并且我在 C++ 中看到过 Headers Include Each Other的线程,但没有一个答案似乎有意义或有效。

任何帮助是极大的赞赏。

类main.h

class classref;
class classmain
{
public:
    classmain()
:B(*this)
{};

 classref B;
 int a;
};

类引用.h

#include "classmain.h"

class classref
{
public:
classref(classmain& ref)
    :A(ref)
{};

 classmain& A;
};
4

1 回答 1

2

这是因为您声明classmain::Bclassref该类的实例。然后它需要完整的定义classref

我建议您实际上classmainclassref.h文件中声明,并包含classref.hclassmain.h. 因此,与您现在在声明和包含方面所做的相反。

于 2013-04-07T09:06:20.663 回答