您好,登錄后才能下訂單哦!
因為引用類型的成員變量定義時需要賦值,不然其所在的類初始化時有編譯錯誤,所以一直以為不能使用引用類型的變量作為成員變量。但在探討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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。