首页 > 代码库 > 先声明再定义的必要性?.xml

先声明再定义的必要性?.xml

<style type="text/css"> pre{ line-height:1; color:#9f1d66; background-color:#cfe4e4; font-size:16px;}.sysFunc{color:#5d57ff;font-style:italic;font-weight:bold;} .selfFuc{color:#8e0ed3;} .bool{color:#008000;} .condition{color:#008000;font-weight:bold;} .key{color:#440080;} .var{color:#008000;font-style:italic;} .Digit{color:#000080;font-weight:bold;} .includePre{color:#661d9f;} .operator?{color:#fd1a53;font-weight:bold;} </style>

????类A定义??在A.h中??实现在A.cpp
?
????类B定义??在B.h中??实现在B.cpp
?
??
????在类A中需要引用类B的类型
?
????而类B也需要引用类A的类型
?
?
???这样?如果在类A.h加如#include"B.h"
?????????????????在类B.h加入#include"A.h"
??
???会出现什么结果呢?
?
???????这样?A,B会处在一种无限嵌套的死局之中。
???????编译器,会报告?类未定义等错误。
?
?

解决的办法:

?
??????在类A中不加入?#include‘B.h‘
?
??????而是在A中声明下类B??即:class?B;??这样类A就可以先使用类B类型了
?
??????只在类B中加入#include"A.h"
?
?
?

举例如下:

?
A.h
?
Class?B;
?
Class?A
{
?
Public:
?
??????void?cal(B?b);??//???A的成员函数?使用B类型数据作为其参数
?
}
?
?
B.h
?
#include"A.h"
?
class?B
{
public:
?
A?a;????//??A类型数据a?????作为B类的成员函数
}
?
?
?
?
?

这样就不会出错了:>

本文使用?书画小说软件?发布,内容与软件无关,书画小说软件?更惬意的读、更舒心的写、更轻松的发布。

先声明再定义的必要性?.xml