博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++类中引用成员和常量成员的初始化(初始化列表)
阅读量:7281 次
发布时间:2019-06-30

本文共 608 字,大约阅读时间需要 2 分钟。

如果一个类是这样定义的:

Class A{     public:          A(int pram1, int pram2, int pram3);     privite:          int a;          int &b;          const int c; }

假如在构造函数中对三个私有变量进行赋值则通常会这样写:

A::A(int pram1, int pram2, int pram3){     a=pram1;     b=pram2;     c=pram3;}

但是,这样是编译不过的。因为常量和引用初始化必须赋值。所以上面的构造函数的写法只是简单的赋值,并不是初始化。

正确写法应该是:

A::A(int pram1, int pram2, int pram3):b(pram2),c(pram3){     a=pram1;}

采用初始化列表实现了对常量和引用的初始化。采用括号赋值的方法,括号赋值只能用在变量的初始化而不能用在定义之后的赋值。

凡是有引用类型的成员变量或者常量类型的变量的类,不能有缺省构造函数。默认构造函数没有对引用成员提供默认的初始化机制,也因此造成引用未初始化的编译错误。并且必须使用初始化列表进行初始化const对象、引用对象。

转载于:https://www.cnblogs.com/visionfeng/p/5735815.html

你可能感兴趣的文章
你应该知道的大数据领域12大动向
查看>>
R-CNN for Small Object Detection
查看>>
IF函数多个条件判断及嵌套
查看>>
代码搬移
查看>>
ajax请求code:200但是进入error函数
查看>>
软件图标显示不正常的问题
查看>>
Golang websocket
查看>>
关于编码:Unicode/UTF-8/UTF-16/UTF-32
查看>>
C++ OpenSSL 之三:生成CSR文件
查看>>
amaze ui响应式辅助
查看>>
C++getline使用
查看>>
Spinner使用二
查看>>
android 隐藏输入法键盘
查看>>
Android jni 中打印logcat日志
查看>>
SSL和keystore生成、导入等配置
查看>>
The Eagles Hotel California Lyrics
查看>>
软件工程——课程评价
查看>>
OpenStack Placement Project
查看>>
微信支付问题
查看>>
购买类目的概率预测
查看>>