基本前瞻性声明无效

时间:2016-03-10 09:04:43

标签: c++ forward-declaration

class B;

class A
{
    B b;
    A();

};

class B
{
    A a;
    B();
};

我有两个课程如下。出于某种原因,即使我转发声明B类,我也有一个错误说:

field 'b' has an incomplete type! 

为什么会这样?

1 个答案:

答案 0 :(得分:0)

当您声明一个类的实例时,您需要完全定义该类,因为编译器需要知道它的大小。

如果只声明指针引用,则编译器只需要符号名称。

因此,如果您将<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="input_fields_wrap"> <div> Name <input type="text" name="textfield[]" placeholder="Enter name"> <a href="javascript:;" class="addNewLink">+ New</a> </div> </div>更改为指针(即A::b)或引用(B* b),那么它将会有效。