您的位置:首页 > 编程语言 > C语言/C++

c++-前向声明

2014-04-23 16:47 148 查看
c++中类必须先声明,再定义

如果两个类相互引用形成一个环形引用时,无法先定义再使用,这时就要用到前向声明。

前向生命的类不能实例化,只能定义指针或者引用

虽然在头文件中不能include互相包含,但是在定义文件中要用include引用类

下面看一个例子:

//B.h
#ifndef _B_H_
#define _B_H_
class B
{
private:
A a;
};
#endif
//A.h
#ifndef _A_H_
#define _A_H_
class B;
class A
{
private:
B *b;
//B b;   //error 不能实例化,因为只有类的声明,类的具体细节不知道
};
#endif
#include "A.h"
//#include "B.h"        //只引入B.h是不对的,但是只引入A.h是对的

int main()
{
A a;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 前向声明