引用作为类的成员
Posted buddho
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引用作为类的成员相关的知识,希望对你有一定的参考价值。
#include <iostream> #include <stdio.h> using std::cout; using std::endl; class A{ public: A(int a):r(a){printf("A::r %p ", &r);} int & r; }; int main() { cout << sizeof(A)<<endl; int a = 0; printf("outer a %p ", &a); A b(a); return 0; }
首先,sizeof(A)是8(64位系统),因为引用底层是用指针实现的。
其次,A的构造函数是有bug的。因为A.r引用的是形参。这个形参在构造函数调用的栈上,构造函数结束后立马销毁。
正确版本:
A(const int &a):r(a){}
以上是关于引用作为类的成员的主要内容,如果未能解决你的问题,请参考以下文章