随笔分类 -  C++ primer plus 学习记录

一边学习一边总结的 C++ 知识点。
摘要:例一(类初始化错误用法): struct thing { char * pn; int m; }; thing amabob = {"wodget", -23}; // valid initialization Stock hot = {"Sukie's Autos, Inc.", 200, 50. 阅读全文
posted @ 2020-06-03 12:14 孱陵 阅读(260) 评论(0) 推荐(0)
摘要:类规范:包括类声明以及类方法定义 类声明提供类的蓝图 方法定义提供细节 常见不通用的约定:类名首字母大写 类接口: 接口由编写类的人提供的方法组成。接口让程序员能够编写与类对象交互的代码,从而让程序能够使用类对象。 要使用某个类,必须了解其公共接口;要编写类,必须创建其公共接口。 通常,C++程序员 阅读全文
posted @ 2020-06-02 23:22 孱陵 阅读(655) 评论(0) 推荐(0)
摘要:#include<vector> // 包含头文件vector ... using namespace std; // vector包含在std中,因此必须包含std::vector vector <int> vi; // create a zero-size array of int int n; 阅读全文
posted @ 2020-05-31 08:48 孱陵 阅读(592) 评论(0) 推荐(0)
摘要:#include < array > // 需要包含该头文件 ... using namespace std; // array位于std中 array < int, 5 > ai; // create array object of 5 ints array < double, 4 > ad = 阅读全文
posted @ 2020-05-31 08:22 孱陵 阅读(492) 评论(0) 推荐(0)
摘要:优先级高的覆盖,同级发生冲突: using声明 = 自动变量 > using编译指令 = 全局 阅读全文
posted @ 2020-05-30 15:24 孱陵 阅读(347) 评论(0) 推荐(0)
摘要:auto h(int x, float y) -> double; // C++11后置返回类型 ->double被称为后置返回类型 auto是占位符(C++11新增用法) 结合decltype使用: template<class T1, class T2> auto gt(T1 x, T2 y) 阅读全文
posted @ 2020-05-30 13:49 孱陵 阅读(830) 评论(0) 推荐(0)
摘要:decltype (expression) var; // C++11 decltype是C++11新增的关键字 expression: 未用空号括起的标识符:var类型等于标识符类型 int a; decltype (a) var; // var type int 函数调用:var类型等于返回类型 阅读全文
posted @ 2020-05-30 10:46 孱陵 阅读(304) 评论(0) 推荐(0)
摘要:namespace // unnamed namespace { int ice; int bandicoot; } 该名称空间中声明的名称的潜在作用域为:从名称空间声明点到该声明区域末尾。(就好像后面紧跟着using编译指令) 注意: 不能在未命名名称空间所属文件之外的其它文件中使用该名称空间中的 阅读全文
posted @ 2020-05-29 19:45 孱陵 阅读(609) 评论(0) 推荐(0)
摘要:namespace my_very_favorite_things {...} namespace mvft = my_very_favorite_things; // mvft是my_very_favorite_things的别名 namespace MEF = myth::elements::f 阅读全文
posted @ 2020-05-29 15:22 孱陵 阅读(1412) 评论(0) 推荐(2)
摘要:namespace myth { using Jill::fetch; // using声明 using namespace elements; // using编译指令 using std::cout; // using声明 using std::cin; // using声明 ... } 名字空 阅读全文
posted @ 2020-05-29 15:09 孱陵 阅读(480) 评论(0) 推荐(0)
摘要:声明时嵌套: namespace elements { namespace fire { int flame; ... } float water; } 使用内部名称空间: using namespace elements::fire; // 依此类推(第n层) 阅读全文
posted @ 2020-05-29 14:17 孱陵 阅读(621) 评论(0) 推荐(0)
摘要:作用: 提供声明名称的区域 声明区域: 全局或位于另一名称空间中 空间中的名称链接性: 默认外部(常量除外)// 仅可在另一个文件的同一名称空间(必须写出所有的嵌套名称序列如果有的话)中使用extern声明这些名称(函数可不用extern),直接在另一个文件中常规用extern全局声明这些内部名称会 阅读全文
posted @ 2020-05-27 17:59 孱陵 阅读(233) 评论(0) 推荐(0)
摘要:声明区域: 变量等可以声明的区域 例:全局变量的声明区域为其声明所在的文件 潜在作用域: 从声明点开始,到其声明域的结尾 作用域: 变量对程序而言可见的范围(即除去潜在作用域中被局部变量等隐藏的区域) 阅读全文
posted @ 2020-05-22 22:25 孱陵 阅读(274) 评论(0) 推荐(0)
摘要:new 初始化:括号内加初始值 int *pi = new int (6) // C++98 struct where {double x; double y; double z}; where * one = new where {2.5, 5.3, 7.2}; // C++11 以下为定位 ne 阅读全文
posted @ 2020-05-22 20:56 孱陵 阅读(969) 评论(0) 推荐(0)
摘要:启言:每个函数定义都有链接器可识别的独一无二的编译后的函数名称 种类:C 语言链接性、C++ 语言链接性,可能有如下的编译器翻译 spiff( int ) _spiff // C spiff( int ) _spiff_i // C++ (函数重载) spiff(double, double) _s 阅读全文
posted @ 2020-05-18 21:47 孱陵 阅读(452) 评论(0) 推荐(0)
摘要:函数链接性:外部(默认)、内部(static) 使用外部函数:extern(可选) 注意:遵循单定义规则(内联函数除外) C++ 函数编译器查找规则:文件内(static), 所有程序文件(非static)-> 库(文件中没找到) 注意:与库函数同名时覆盖库函数 阅读全文
posted @ 2020-05-18 21:31 孱陵 阅读(440) 评论(0) 推荐(0)
摘要:const 全局变量的链接性为内部 使用 extern 覆盖默认的内部链接性,转为外部链接性 extern const int states = 50; // definition with external linkage 函数或代码块内声明 const ,作用域为代码块 阅读全文
posted @ 2020-05-11 14:20 孱陵 阅读(149) 评论(0) 推荐(0)
摘要:volatile: 功能:即使程序不修改内存单元,值也会发生变化(硬件或其他程序修改) 作用:改善编译器的优化能力(编译器默认将常用·假设值不变的变量加入寄存器,使用 volatile 后将不优化) mutable: 指出即使结构或类变量为 const ,其某个成员也可以被修改 struct dat 阅读全文
posted @ 2020-05-11 11:52 孱陵 阅读(140) 评论(0) 推荐(0)
摘要:将 static 用于代码块中定义的名称 如果初始化了静态局部变量(包括零初始化),则程序只在启动时进行一次初始化,以后再调用函数(或进入该代码块)时,将不会再初始化 阅读全文
posted @ 2020-05-10 23:22 孱陵 阅读(159) 评论(0) 推荐(0)
摘要:将 static 用于作用域为整个文件的名称 注意: 静态内部变量隐藏同名常规外部变量 阅读全文
posted @ 2020-05-10 22:33 孱陵 阅读(147) 评论(0) 推荐(0)