C++---类成员变量定义为引用

Posted zpcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++---类成员变量定义为引用相关的知识,希望对你有一定的参考价值。

摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法

note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必须在初始化列表中进行初始化)

#include <iostream>
using namespace std;

class A {
public:
    A(int k):a(n){  // 必须要在初始化列表中进行初始化
        n = k;
        cout << a <<endl;
    }
    int get() const {
        return n+1;
    }
private:
    int n;
    int &a;
};

int main(){
    A a(10);
    cout << a.get() <<endl;
    return 0;
}

// 输出结果
// 10
// 11

note2:初始化后的引用变量所占用的内存空间和普通变量相同

#include <iostream>
using namespace std;

class A {
public:
    A(int k):a(k){}
    int &a;
};

int main(){
    A a(1);
    cout << sizeof(a) <<endl;
    return 0;
}


// 输出结果(VS2013 32位编译器)
// 4

 

以上是关于C++---类成员变量定义为引用的主要内容,如果未能解决你的问题,请参考以下文章

类的认识及使用

JAVA中的类成员变量是存在堆还是栈里面呀?

关于c语言结构体变量成员引用的问题

关于c语言结构体变量成员引用的问题

eclipse中在一个类中定义另一个类

5/29 c的结构体变量