1、我把类B的头文件包含进来。然后在类A中直接定义B类型的成员变量b,编译错误: B does not name a type
#include "B.h"
class A{
public:
A();
private:
B b;
}
2、在类A的构造函数初始化列表里加上构造函数b(),编译错误:class A does not have any field named ‘b’。
#include "B.h"
class A{
public:
A():b(){};
private:
B b;
}
3、我在类A前加一个类B的前向声明,编译错误:field ‘b’ has incomplete type
#include "B.h"
class B;
class A{
public:
A()b(){};
private:
B b;
}
真是要疯了。感觉一个很简单的语句,怎么写都是错。网上又没找到一模一样的问题。
两个头文件都有加条件编译,而且都互相包含了对方的头文件,包含头文件的语句都在条件编译内。不知道有没有影响。
若有大佬能解此题,当真感激不尽、感激不尽
#include "B.h"
class A{
public:
A();
private:
B b;
}
2、在类A的构造函数初始化列表里加上构造函数b(),编译错误:class A does not have any field named ‘b’。
#include "B.h"
class A{
public:
A():b(){};
private:
B b;
}
3、我在类A前加一个类B的前向声明,编译错误:field ‘b’ has incomplete type
#include "B.h"
class B;
class A{
public:
A()b(){};
private:
B b;
}
真是要疯了。感觉一个很简单的语句,怎么写都是错。网上又没找到一模一样的问题。
两个头文件都有加条件编译,而且都互相包含了对方的头文件,包含头文件的语句都在条件编译内。不知道有没有影响。
若有大佬能解此题,当真感激不尽、感激不尽