本文主要是介绍C++前向引用声明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
<1>A类有B类对象,B类有A类对象,循环依赖,但是只有先定义才能定义对象,因此,若要实现循环依赖需要使用前向引用声明。
<2>
class B;//前向引用声明
class A
{public:void functionA(B b);P...
};
class B
{public:void functionB(A a);P...
};
<3>三个注意点
第一,在没有提供完成的类的定义之前不可以定义该类的对象,例如,在class A中不可以定义B rb;因为没有给出B类的完整定义。因此,使两个类以彼此的对象为数据成员,是不合法的。
第二,在经过前向引用声明之后可以定义B类的引用或者指针
class B;//前向引用声明
class A
{public:void functionA(B b);private:B &b;
};
class B
{public:void functionB(A a);P...
};
第三,例如在A中调用B类对象的成员函数或者数据成员,那么可以先在A中声明成员函数,然后成员函数的定义放在B被完整定义之后
class B;//前向引用声明
class A
{public:void functionA();private:B &b;
};
void A::functionA()//在B类的完整定义之前,编译错误
{b.Dosth();
}class B
{public:void functionB(A a);void Dosth();private:A &a;
};
void A::functionA()//在B类的完整定义之后
{b.Dosth();
}
这篇关于C++前向引用声明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!