因为引用类型的成员变量定义时需要赋值,不然其所在的类初始化时有编译错误,所以一直以为不能使用引用类型的变量作为成员变量。但在探讨C++的前置声明知识时,发现是可以定义引用类型的成员变量的。
如下讲解一下如何使用引用类型的成员变量。
//AAA.h #pragma once class BBB; class AAA { public: AAA(BBB &x); ~AAA(); private: BBB &b; }; #include "AAA.h" AAA::AAA(BBB &x) : b(x) { } AAA::~AAA(void) { } //BBB.h #pragma once class AAA; class BBB { public: BBB(void); ~BBB(void); void NewAAA(); private: AAA *a; }; //BBB.cpp #include "BBB.h" #include "AAA.h" BBB::BBB() { NewAAA(); } BBB::~BBB(void) { } void BBB::NewAAA() { BBB b; a = new AAA( b ); } //main.cpp #include <iostream> int main() { return 0; }
如上程序所示,在AAA的头文件中定义了引用类型的成员变量,在AAA的构造函数初始化列表中对其进行了初始化,达到了“使用引用类型的成员变量”的目的。
注意,引用类型的成员变量的初始化必须在构造函数的初始化列表中进行初始化。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。