浅墨浓香

想要天亮进城,就得天黑赶路。

导航

随笔分类 -  Modern C++ 11/14

Effective Modern C++
摘要:一、继承构造函数 (一)函数继承与同名覆盖 1. 派生类可以自动获得基类的成员变量和接口(虚函数和纯虚函数,这里指都是public派生),这体现了类的继承性。 2. 如果基类的非虚函数在派生类被重写,则将发生同名覆盖现象。即基类函数在派生类中会被同名函数隐藏,从而不可见。特别是构造函数也不例外,基类 阅读全文

posted @ 2019-08-02 20:50 浅墨浓香 阅读(854) 评论(0) 推荐(0)

摘要:一、default和delete关键字 (一)编译器提供的“缺省函数” 1.类的成员函数:构造/析构函数、复制构造/复制赋值函数、移动构造/移动赋值函数。 2. 类的全局默认操作函数:operator new/delete、operator,、operator*、operator->、operato 阅读全文

posted @ 2019-08-01 23:10 浅墨浓香 阅读(924) 评论(0) 推荐(0)

摘要:一. 回顾C++异常机制 (一)概述 1. 异常处理是C++的一项语言机制,用于在程序中处理异常事件(也被称为导常对象)。 2. 异常事件发生时,使用throw关键字抛出异常表达,抛出点称为异常出现点,由操作系统为程序设置当前异常对象。然后执行程序当前异常处理代码块。 3. 在包含异常出现点的最内层 阅读全文

posted @ 2019-07-30 16:33 浅墨浓香 阅读(933) 评论(0) 推荐(0)

摘要:一. const 和constexpr的区别 (一)修饰变量时,const为“运行期常量”,即运行期数据是只读的。而constexpr为“编译期”常量,这是const无法保证的。两者都是对象和函数接口的组成部分。 (二)修饰函数时,与const关键字相比,constexpr关键字不仅可以修饰变量和指 阅读全文

posted @ 2019-07-29 01:24 浅墨浓香 阅读(1100) 评论(0) 推荐(0)

摘要:一. typedef和using关键字 (一)两者的差异 ①C++11引入using关键字,覆盖了typedef的全部功能。它既可以用来定义类型的别名,也可以定义模板的别名。而typedef可以定义类型的别名,但不能用来重定义模板的别名。 ②使用using不用写“::type”的后缀。在模板内,对于 阅读全文

posted @ 2019-07-27 16:45 浅墨浓香 阅读(888) 评论(0) 推荐(0)

摘要:一. nullptr与nullptr_t (一)nullptr_t是一种数据类型,而nullptr是该类型的一个实例。通常情况下,也可以通过nullptr_t类型创建另一个新的实例。 (二)所有定义为nullptr_t类型的数据都是等价的,行为也是完全一致的。 (三)std::nullptr_t类型 阅读全文

posted @ 2019-07-25 16:48 浅墨浓香 阅读(4108) 评论(0) 推荐(1)

摘要:一、统一初始化(Uniform Initialization) (一)C++四种初始化方式 1. 小括号:int x(0); //C++98 2. 等号:int x = 0; //C++98 3. 大括号:int x{0}; //C++98成功,C++11成功 4. 等号和大括号:int x = { 阅读全文

posted @ 2019-07-24 16:59 浅墨浓香 阅读(1147) 评论(0) 推荐(0)

摘要:第4课 decltype类型推导 一、decltype类型推导 (一)语法: 1、语法:decltype(expr),其中的expr为变量(实体)或表达式 2、说明: ①decltype用于获取变量的类型,或表达式结果的类型或值类型。decltype推导过程是在编译期完成的,并且不会真正计算表达式的 阅读全文

posted @ 2019-07-21 18:14 浅墨浓香 阅读(1564) 评论(0) 推荐(0)

摘要:第3课 auto类型推导(2) 一、使用auto的优势 (一)避免使用未初始化变量 (二)可简化变量/对象类型的声明 (三) 在某些场合无法判断出类型时,可用auto自动推导(如lambda表达式) (四)可自适应类型,避免隐式类型转换或显式指定类型可能出现的类型错误,增加代码的可移植性。 【编程实 阅读全文

posted @ 2019-07-21 18:06 浅墨浓香 阅读(608) 评论(0) 推荐(0)

摘要:第2课 auto类型推导(1) 一、auto类型推导 (一)与模板类型推导映射关系 1、auto类型推导与模板类型推导可以建立一一映射关系,它们之间存在双向的算法变换。auto扮演模板中T的角色,而变量的类型及修饰词(如const或引用)扮演ParamType的角色。 2、举例说明两者映射关系:(a 阅读全文

posted @ 2019-07-14 20:47 浅墨浓香 阅读(955) 评论(0) 推荐(0)

摘要:第1课 理解模板类型推导 一、函数模板 (一) 函数模板及调用形式 (二)讨论: ①T和ParamType的类型往往不一样。因为ParamType常包含一些修饰词,如const或引用符号等限定词。 ②T的类型,不仅仅依赖于实参expr的类型,还依赖于ParamType的类型。 ③ParamType的 阅读全文

posted @ 2019-07-14 12:33 浅墨浓香 阅读(2608) 评论(2) 推荐(4)