玩命加载中 . . .

学习之旅
34-考虑lambda而非bind 34-考虑lambda而非bind
考虑以下C++14的lambda使用,它返回其实参是否在最小值(lowVal)和最大值(highVal)之间的结果,其中lowVal和highVal是局部变量 auto betweenL = [lowVal, highVal](co
2022-09-18
33-lambda表达式的完美转发 33-lambda表达式的完美转发
在lambda的形参中可以使用auto关键字就可以使用泛型lambda,这样在闭包类中的operator()函数是一个函数模版 auto f = [](auto x){ return func(normalize(x)); 
2022-09-18
31-避免使用默认捕获模式 31-避免使用默认捕获模式
按引用捕获会导致闭包中包含了对某个局部变量或者形参的引用,变量或形参只在定义lambda的作用域中可用。如果该lambda创建的闭包生命周期超过了局部变量或者形参的生命周期,那么闭包中的引用将会变成悬空引用 假如我们有元素是过滤函数(fil
2022-09-18
03-理解decltype 03-理解decltype
相比模板类型推导和auto类型推导,decltype只是简单的返回名字或者表达式的类型 const int i = 0; //decltype(i)是const int bool f(const Widget
2022-09-18
02-理解auto类型推导 02-理解auto类型推导
auto类型推导和模板类型推导有一个直接的映射关系。它们之间可以通过一个非常规范非常系统化的转换流程来转换彼此 如果有这样的模板 template<typename T> void f(ParmaType param); 调用形式为
2022-09-18
01-理解模板类型推导 01-理解模板类型推导
考虑这样的函数模板 template<typename T> void f(ParamType param); f(expr); //从expr中推导T和ParamType 有三种情况需
2022-09-18
43-模板化基类 43-模板化基类
学习处理模板化基类内的名称如果基类是个模板类,直接调用基类中的方法会不能编译 class A { public: void func() { cout << "class A" << en
2022-08-27
37-绝不重新定义缺省参数 37-绝不重新定义缺省参数
绝不重新定义继承而来的缺省参数值派生类在重写虚函数的时候,如果修改了缺省参数,实际运行的时候使用的还是基类的虚函数的缺省参数 class Shape { public: virtual void draw(int i =
2022-08-27
36-绝不重新定义非虚函数 36-绝不重新定义非虚函数
绝不重新定义继承而来的non-virtual函数非虚函数实行静态绑定,如果派生类重新定义了非虚函数,将会覆盖基类的版本 这样当基类的指针指向派生类对象时,调用的就是基类的版本,因为是静态绑定,所以调用哪个版本取决于指针的静态类型 class
2022-08-27
32-公有继承 32-公有继承
确定public继承塑模出is-a关系class Person {...}; class Student: public Person {...}; void eat(const Person&am
2022-08-27
04-初始化 04-初始化
确定对象被使用前已经初始化不同编译单元内定之non-local static对象的初始化次序是不确定的 广义的static对象包括: global对象 定义于namespace作用域内的对象 在class内、函数内、file作用域内声明为
2022-08-27
03-const代替#define 03-const代替#define
尽可能使用const代替#define有时候需要重载const版本与非const版本的成员函数,但他们的代码又很多重复所以可以直接用非const函数调用const函数 class Text { private: strin
2022-08-27
1 / 8