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

时间:2021-09-05 15:59:06

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;}

    类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类的成员函数
}
 
 
 
 
 

这样就不会出错了:>

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