首页 > 代码库 > 先声明再定义的必要性?.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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。