- class A;
- //A.h
- # ifndef _A_H_
- # define _A_H_
- # include "B.h"
- class A
- {
- A(void);
- ~A(void);
- B b_; //要包含B.h
- };
- # endif //_A_H
- //B.h
- # ifndef _B_H_
- # define _B_H_
- //前向声明,不能实例化对象
- class A; // 就不需要包含A.h,要求不能定义对象,只能给定义指针和引用
- //因为我们不知道类长声明样子,就无法为其分配内存
- class B
- {
- B(void);
- ~B(void);
- void fun(A& a)//只能是指针或引用
- {
- ;
- }
- //前向声明的类不能实例化对象
- A* a_; //
- };
- # endif //_B_H_
refer to
- B.cpp
- # include "B.h"
- # include "A.h"
- B::B(void)
- {
- }
- B::~B()
- {
- }
http://liam2199.blog.51cto.com/2879872/1172175