//------------<Aclass.h>--------------------

namespace  demo

{

 namespace  test

{

 class   TEST_A{
     public:
         TEST_A();
         ~TEST_A();
 
     private:
         Print();
 };
 }

 }



 //------------<Aclass.cpp>--------------------
 #include    "Aclass.h"
 
 TEST_A::TEST_A()
 {
 }
 TEST_A::~TEST_A()
 {
 }
 
 TEST_A::Print()
 {
 
 }
 
 
 //------------<Bclass.h>--------------------

 #pragma     once


 namespace  demo::test

{

     class   TEST_A; // 在使用之前先申明
 }
 namespace   math{
 namespace   func{
 class   TEST_B{
     public:
         TEST_B();
         ~TEST_B();
 
     private:
         demo::test::TEST_A*   A; //使用类A的时候必须加上命名空间
 };
 }
 }
 
 
 //------------<Bclass.cpp>--------------------
 #include    "Bclass.h"
 
 #include    "Aclass.h"  // !!! 只能在源文件Bclass.cpp 包换A类的头文件!!!
 
 TEST_B::TEST_B()
 {
 }
 TEST_B::~TEST_B()
 {
 }

注意:

当两个类嵌套包含时,比如A类里面有类B,B类里面有A类,则除了要在头文件里申明之外,

另外头文件的包含一定要在xxx.cpp源文件里,而不是头文件.




标签: none

评论已关闭