引用
冬日里的阳光 的 头文件循环倚赖问题
在.h文件中相互引入各自类的头文件,在.cc中用类的预声明(class yourclass;)可以解决这个问题。
例如:classA和classB的相互调用
//classA.h文件
//引入classB的头文件
calss classA
{
public:
……
void show();
void send();
protected:
classB * classb_;
};
//cassA.cc文件
class classB;//classB的预声明
void classA::send()
{
classb_->show();
}
void classA::show()
{
cout<<"Hello,this is classA……"<<endl;
}
……
//classB.h头文件
//引入classA的头文件
class classB
{
public:
……
void show();
void send();
protected:
classA *classa_;
};
//classB.cc文件
class classA; //classA的预声明
void classB::send()
{
classa_->show();
}
void classB::show()
{
cout<<"Hello,this is classB……"<<endl;
}