
读书笔记
文章平均质量分 73
push_rbp
这个作者很懒,什么都没留下…
展开
-
more effective c++读书笔记 第五章 技术 part2
条款31让函数根据一个以上的对象类型决定如何虚化这里的问题很简单class Base {virtual void funtion( Base& base){}};class A : public base {};class B : public base {};class C : public base {};现在,function 的参数都可能是A B C中的一个,但是不同的参数类型有不同的行为,如何根据参数类型决定funcion中的行为呢。因为是虚函数,所以在函数调用时,如原创 2021-04-13 00:27:12 · 138 阅读 · 0 评论 -
more effective c++ 读书笔记 第五章 技术 part 1
条款35将ctor和non member func 虚化作者在这里描述了一种场景class Base {}class Deveried1 : Base {};class Deveried2 : Base {};class Com {vector<Base*> vec;};现在想为vec赋值,需要新构造出来对象,但是根据磁盘数据构造,我们这个时候,我们需要一个额外的成员函数,让他来返回不同类型的派生类指针,他的行为好像是 virtual ctor。其实本意很简单,这里原创 2021-03-30 00:00:00 · 156 阅读 · 0 评论 -
more effective c++ 读书笔记 第四章 效率
条款16谨记80-20法则这里作者谈的多是理念,比如,80%的资源被20%的代码所使用。所以大部分时候,我们所写的代码是平凡的,也就是说,在80%的时间里,他不会对整体效率有影响(有趣了)。大部分人对瓶颈的查找是猜,但是应该用正确的工具来测量。条款17考虑使用lazy evaluation惰性求值的意思就是只有在被真正使用时才去做计算,比如写时复制这种特性。作者举了个例子:如string s1 = “hello”string s2 = s1;strng ctor 一般会使得s2拥有s1的副原创 2021-03-14 14:05:02 · 148 阅读 · 0 评论 -
more effective c++读书笔记 第二章 操作符
条款5对定制的类型转换函数保持警觉在class中可定制两种类型转换函数,一个是单自变量的构造函数(如果带默认参数,可以有多个变量),二是operator 类操作符的重载,这里的内容较基础。对于单自变量构造函数,现在可以用explicit 关键字,要求显示构造,即可避免默认的转换行为,对于不支持explicit的编译器,作者提供了一种做法class Array {public: class ArraySize { public: ArraySize(int s) : size(s) {}原创 2021-03-08 00:11:20 · 172 阅读 · 0 评论 -
more effective c++ 读书笔记 第一章
more effective c++ 读书笔记 第一章 :基础议题条款一仔细区别pointers和references区别指针和引用,没什么好说的,基础知识。不过有个有趣的问题,之前没有考虑过:char *pc = 0;char* ref = *pc本质上,还是说对空指针、 野指针解引用,然后绑定到对象上,这样对,是未定义的。条款二使用c++类型转换符这部分较为基础,值得注意的是,dynamic_cast 用于向下转型,如果指针转换失败,返回nullptr, 如果是引用,抛出异常。另外原创 2021-03-07 21:51:00 · 215 阅读 · 2 评论