先声明再定义的必要性

来源:互联网 发布:mac qq可以远程协助吗 编辑:程序博客网 时间:2024/05/16 13:51

 

 

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

}

 

 

 

 

 

这样就不会出错了:>

  

 

 

  

 

           

 

原创粉丝点击