带有命名空间的C++类的前置申明方法(即两个头文件需要相互引用)
//------------<Aclass.h>--------------------
namespace demo
{
namespace test
{
class TEST_A{public:
TEST_A();
~TEST_A();
private:
Print();
};
}
}
#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源文件里,而不是头文件.
评论已关闭