且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C++ 中使用引用类型的成员变量

更新时间:2022-10-14 08:45:08

   因为引用类型的成员变量定义时需要赋值,不然其所在的类初始化时有编译错误,所以一直以为不能使用引用类型的变量作为成员变量。但在探讨C++的前置声明知识时,发现是可以定义引用类型的成员变量的。

    如下讲解一下如何使用引用类型的成员变量。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//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的构造函数初始化列表中对其进行了初始化,达到了“使用引用类型的成员变量”的目的。

    注意,引用类型的成员变量的初始化必须在构造函数的初始化列表中进行初始化。




本文转自 006玩命 51CTO博客,原文链接:http://blog.51cto.com/weiyuqingcheng/1842384,如需转载请自行联系原作者