问题:
类一:
class A
{
private:
int aa;
B *pb;
public:
void seta(int m){ aa=m};
int geta(){return aa};
void setB(B *b){pb=b};
int getbfromA{return pb->getb};
}
类二:
class B
{
private:
int bb;
A *pa;
public:
void setb(int m){ bb=m};
int getb(){return bb};
void setA(A *a){pa=a};
int getafromB{return pa->geta};
}
问:一。上面两个类要是在不同的文件中(假设分别在a.h,b.h中)应该如何包含头文件或者提前声明,才能编译通过?
二。在相同的文件中,又要如何呢?
三。如果把上面两个类中的A *pa;B *pb;改为A pa;B pb;又要如何解决!??
解答:
一。
类一:
class B;
class A
{
private:
int aa;
B *pb;
public:
void seta(int m){ aa=m};
int geta(){return aa};
void setB(B *b){pb=b};
int getbfromA{return pb->getb};
}
类二:
class A;
class B
{
private:
int bb;
A *pa;
public:
void setb(int m){ bb=m};
int getb(){return bb};
void setA(A *a){pa=a};
int getafromB{return pa->geta};
}
二。
class B;
class A
{...}
class B
{...}
三。
还是用指针吧。