c++类中对数据成员进行初始化和赋值的区别
来源:互联网 发布:c语言d什么意思 编辑:程序博客网 时间:2024/06/06 12:53
在c++中定义一个类 ,对于构造函数 我们经常是这么写的:
class test{public: test(int n_x , int n_y) { x = n_x; y = n_y; }private: int x , y;};
这中写法虽然是合法的但比较草率
在构造函数 test(int n_x , int n_y)中 , 我们这样实际上不是对数据成员进行初始化 , 而是进行赋值。
正确的是初始化应该是这样的:
class test{public: test() {} test(int n_x , int n_y):x(n_x) , y(y) {}private: int x , y;};
虽然大部分时候赋值和初始化是没有区别的 , 但是构造函数的初始化值有时必不可少,例如:
class test{public: test() {} test(int n_x , int n_y , int z_x) { i = n_x; ci = n_y; ri = z_x; }private: int i; const int ci; int &ri;};
上面代码的红色部分就是错误的 , 因为const 和 引用类型的数据成员的唯一机会就是通过构造函数进行初始化值。
因此,正确形式:
test(int n_x , int n_y , int z_x):i(n_x) , ci(n_y) , ri(n_z) {}
0 0
- c++类中对数据成员进行初始化和赋值的区别
- c++中对不同的数据成员进行初始化
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- c++构造函数成员初始化中赋值和初始化列表两种方式的区别
- class中成员变量列表初始化和函数体赋值的区别
- C/C++基础问答(1):通过初始化列表和构造函数内赋值初始化成员变量的区别
- c++中初始化和赋值的区别
- 构造函数对数据成员进行初始化的方法
- 在类中对常量成员进行初始化
- 常量,引用,对象成员的初始化要在成员初始化表中进行,不可以直接=号赋值。
- Unity3d Console双击不再默认打开编辑器
- 0基础自学Android(一)
- Unity集成android插件
- 市科技局举办消防安全知识讲座
- iOS开发之邮件发送代码
- c++类中对数据成员进行初始化和赋值的区别
- 第十二周项目三摩托车继承自行车和机动车
- Linux驱动程序学习步骤经典收藏
- 会员积分规则
- OpenCV2.4.9新版本使用问题---sift,surf无法使用
- org.springframework.web.context.ContextLoaderListener
- 乘积最大
- 关于errno与perror,strerror函数
- 8月第3周国内IT技术类网站排行Top15:CSDN第一