因为引用类型的成员变量定义时需要赋值,不然其所在的类初始化时有编译错误,所以一直以为不能使用引用类型的变量作为成员变量。但在探讨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;
}
注意,引用类型的成员变量的初始化必须在构造函数的初始化列表中进行初始化。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。