class B;
class A
{
B b;
A();
};
class B
{
A a;
B();
};
我有两个课程如下。出于某种原因,即使我转发声明B类,我也有一个错误说:
field 'b' has an incomplete type!
为什么会这样?
答案 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
),那么它将会有效。