Lowerce's Blog

「C++ Primer」阅读笔记

C++ Primer

g++ -o 输出文件名 待编译文件名

程序名 < 输入文件

程序名 > 输出文件

数据类型

数值不为负选择无符号型(unsigned)

整数运算选用int,超过表示范围的话选用long long

浮点数运算选用double

变量

复合类型

const限定符

处理类型

自定义数据结构

using声明

string

vector

迭代器

数组

多维数组

表达式基础

运算符

类型转换

运算符优先级

条件语句

迭代语句

跳转语句

try语句块和异常处理

函数基础

参数传递

返回类型和return语句

函数重载

特殊用途语言特性

函数匹配

函数指针

定义抽象数据类型

访问控制与封装

类的其它特性

类的作用域

构造函数再探

类的静态成员

IO类

文件输入输出

string流

顺序容器概述

容器库概览

顺序容器操作

vector对象是如何增长的

额外的string操作

容器适配器

泛型算法概述

初识泛型算法

定制操作

C++特性

代表一种不共享的指针,不能复制只能移动(std::move),可以通过make_unique<类型>(参数)来创建。归属于头文件<memory>,属于C++标准库。

参考 How to: Create and use unique_ptr instances

一种关键字,表示内联。在程序编译过程中对内联部分的代码调用直接替换代码段。仅适用于简单函数,仅对编译器进行建议,必须与实际实现的函数体放在一起才有意义(仅作用于声明则无效)。

参考 C++ 中的 inline 用法

一种关键字,表示常量。被修饰的对象或变量无法被修改。

const对象必须初始化,仅在文件内有效。

如果想在多个文件中共享const对象,必须在变量的定义之前添加extern关键字。

允许一个常量引用绑定非常量对象,但无法通过常量引用改变非常量对象。类似的,允许一个常量指针绑定非常量对象。

参考 const (C++)

用来修饰编译器常量。由编译器来验证变量的值是否是一个常量表达式。

在C++ 11中,表示“常量”可以用constexpr,表示“只读”时才用const。

constexpr在修饰指针时仅对指针有效,与指针所指的对象无关。(将其定义的对象置为了顶层const)

memcpy(a,b,c) 从b处拷贝c个字节至a

属于标准库的cstring

override关键字用于派生类中需要重写的函数后,如果这些函数未被重写,编译器会报错

防止直接继承基类成员函数的接口和缺省实现