c++构造函数成员初始化赋值和初始化列表
来源:互联网 发布:淘宝小号 浮云网 编辑:程序博客网 时间:2024/06/09 23:11
一般来说构造函数初始化列表比赋值要好:
赋值
class A
{
string x;
A(const string y)
{
x=y;
}
};
初始化列表
class A
{
string x;
A(const string y):x(y)
{
}
};
1.必要性
a.成员是类时,且构造函数带参数只能使用初始化列表(在成员初始化时无法调用无参构造函数)
b.成员是常量或引用只能使用初始化列表(常量对象或者引用不能被赋值只能被初始化)
2.效率
对于赋值:
由于编译器总是确保所有成员对象在构造函数体之前被初始化,所以首先调用string的默认构造函数,然后再进行赋值函数(两次调用)
对于初始化列表:
只进行了拷贝构造函数
注意:列表初始化的顺序与它们在类中的声明顺序一致,与初始化列表中的顺序无关。
阅读全文
0 0
- c++构造函数成员初始化赋值和初始化列表
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++基础问答(1):通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- c++构造函数成员初始化中赋值和初始化列表两种方式的区别
- 构造函数中的初始化列表和赋值
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- 成员初始化列表和构造函数体初始化的区别
- 构造函数初始化列表和构造函数体内赋值
- [C++]类成员冒号初始化以及构造函数内赋值
- 构造函数初始化列表和函数内部赋值的区别
- ORA-12504
- 网络爬虫初识:网络爬虫概述
- JavaSE编程基础 第二章 数据类型和运算符
- MySQL入门之大纲
- dos命令之 chcp 用法详解(修改dos窗口的编码表(代码页))
- c++构造函数成员初始化赋值和初始化列表
- Mac OSX下编译 Hadoop 2.6.4
- windows7 + Redhat-server7.双系统中win7启动项丢失的解决
- 剑指offer面试题63 序列化二叉树(java实现)
- C语言指针使用不当带来的内存不可读
- 挑战程序竞赛系列(27):3.5二分图匹配(2)
- Android中获取应用程序(包)的信息----------PackageManager的使用一
- 使用ColorMatrix改变图片的饱和度
- JavaSE编程基础 第三章 控制语句