make_unique在c++11里面没有引入,但是你可以自己写一个 template <typename T, typename ...Args> std::unique_ptr<T> make_unique(Args&& ...args) { return unique_ptr<T>(new T ...
分类:
其他好文 时间:
2021-06-15 18:01:41
阅读次数:
0
静态数组 int array[100]; //定义了数组array,但并未对数组初始化;静态数组 int array[100] = {0}; //定义了数组array,并将数组元素全部初始化为0;静态数组 int array[100] = {1}; //定义了数组array,并将数组第一个元素初始化 ...
分类:
编程语言 时间:
2021-04-07 11:45:07
阅读次数:
0
#include<iostream> using namespace std; class Composition{ public: //同时有类内初始值和初始化列表时候,最终值为初始化列表中的 Composition():im(this),m(20){cout<<"Composition ctor ...
分类:
其他好文 时间:
2020-11-20 12:02:36
阅读次数:
10
抑制构造用函数的隐式转换(explicit) 当类存在一个参数的构造函数的时候也可以将这个构造函数称之为转换构造函数,允许将参数类型的值转换成类类型,但是只允许一步类型转换,如果想要禁止这种转换操作,可以通过在构造函数前面添加 explicit 实现。注意,如果将构造函数声明成了explicit的方 ...
分类:
编程语言 时间:
2020-07-26 19:11:09
阅读次数:
63
类内初始化 c++11中,可以为类内成员变量提供一个初始值,在创建对象的时候,初始值就可以用来初始化该成员变量。在头文件中可以赋初值。 const成员变量的初始化 两种方式: 在头文件定义时赋初值进行初始化 在构造函数的初始化列表中进行初始化,不可以通过赋值来初始化 //类定义(类声明) class ...
分类:
编程语言 时间:
2020-07-16 21:47:18
阅读次数:
67
构造函数是特殊的成员函数 在冒号和花括号之间的代码称为构造函数的初始化列表 如果没有为一个类显式定义任何构造函数,编译器将自动为这个类生成默认构造函数 const 成员函数不能修改调用该函数的对象,只能读取而不能修改调用它们的对象的数据成员why?const成员函数的this指针被隐含地修改为con ...
分类:
其他好文 时间:
2020-06-24 13:42:20
阅读次数:
62
类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员;2.进入构造函数后在构造函数中执行一般赋值与计算。使用初始化列表有两个原因:原因1.必须这样做:《C++Primer》中提到在以下三种情况下需要使用初始化成员列表:情况一、需要初始化的数据成员是对象的情况(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始化);情况二、需要初始化const修饰
分类:
编程语言 时间:
2020-06-19 15:43:07
阅读次数:
69
1、必须在构造函数初始化列表里初始化的成员 1. 常量成员和引用类型:因为const常量成员和引用类型必须要初始化且不能赋值。 2. 特殊情况的对象:这个对象是一个类或结构体,并且他只有带参数的构造函数没有默认构造函数,那么一定要在初始化列表初始化(编译器无法帮助生成无参构造函数)。 3. 子类初始 ...
分类:
其他好文 时间:
2020-05-18 20:39:47
阅读次数:
54
if 语句在行内 连接 下面的最后一种方式在绑定两个不同类型的对象时显得很酷。 计算技巧 注意浮点数的除法 数值比较 两个列表同时迭代 带索引的列表迭代 列表推导 已知一个列表,刷选出偶数列表方法: 用下面的代替 字典推导 初始化列表的值 将列表转换成字符串 从字典中获取元素 不要用下列的方式 获取 ...
分类:
编程语言 时间:
2020-05-11 10:33:31
阅读次数:
76
"列表初始化(list initalization)" 0、课前秀 + C++98/03对于不同类型(数组,结构体,类)的初始化,有不同的方法 1、统一的初始化 + //C++98/03不具备,C++11可以直接在变量名后面跟上初始化列表 + //虽然用了=,但仍然是列表初始化 + 注意: 在初始化 ...
分类:
编程语言 时间:
2020-04-25 23:56:22
阅读次数:
110