effective-c++
文章平均质量分 58
卢然小子
这个作者很懒,什么都没留下…
展开
-
more effective c++——Item M29 引用计数(一)简略的rfstring类设计和写时拷贝
引用计数的特点及作用 1. 引用计数允许多个相同值得对象共享这个值得实现 2. 引用计数可以节省空间、拷贝及析构的开销 3. 引用计数可以简化对象的追踪过程,比如在垃圾体系回收中引用计数的简单实现原创 2017-05-03 00:50:24 · 535 阅读 · 0 评论 -
effective C++——限制类所能产生的对象数量
第一章:效率Item M19:理解临时对象的来源 1.C++临时变量指的是匿名变量,匿名变量带来了构造和析构的开销 2.如果要返回一个对象,最好不要返回局部变量,它会带来两次的构造和一次的析构,可以通过调用构造函数构造一个匿名变量进行返回Item M21:通过重载避免隐式类型转换 1.通过单参构造函数可以隐式的将其参数转换为该类的对象,此时会发生构造的开销,为避免这种隐式转换,原创 2017-05-06 20:08:14 · 491 阅读 · 0 评论 -
more effective c++使用条款(一)—— 基础议题/运算符
第一章:基础议题 Item M1:指针与引用的区别 1.指针可以不初始化,引用必须初始化 2.指针可以为空指针,引用不可以为空 3.指针可以改变指向,引用初始化后就不能改变指向的对象 4.指针占用4个字节,引用只是别名,理论上是不占用空间的,但是这个别名本身是要占用空间的,因此也可以说引用时占用空间的 5.引用比指针效率高,因为引用直接操作原创 2017-05-06 20:05:47 · 434 阅读 · 0 评论 -
effective C++ 使用条款(二)——item34~item46总结
第六章 继承和面向对象设计条款35: 使公有继承体现 “是一个” 的含义 1.子类对象一定“是一个”基类对象,基类对象不一定是子类对象 条款36: 区分接口继承和实现继承 1.希望派生类只继承成员函数的接口——将函数声明为纯虚函数 2.希望派生类同时继承函数的接口和实现,但允许派生类改写实现——将函数声明为虚函数 3.希望同时继承接口和实现,并且不允许派生类改写任何东原创 2017-05-06 20:02:44 · 763 阅读 · 0 评论 -
effective C++ 使用条款(一)——item1~item33总结
从c转向c++条款原创 2017-05-06 17:48:44 · 420 阅读 · 0 评论 -
more effective c++——Item M30 代理类(三)隐式类型转换与代理类
代理类的缺点: 1.作为函数返回值,代理类的临时对象(比如proxychar)会带来构造与析构的开销 2.代理类存在类型转换的问题,如果原始类A可以隐式转换为类B,则代理类即使存在隐式转换为A的方法,也不能直接转换为B 3.如果要像操作原始类一样操作代理类,则必须为代理类提供相同的接口根据第二点的特性,我们可以设计一个转换的代理类来防止隐式类型(另一种方式是将单参构造函原创 2017-05-06 17:18:18 · 425 阅读 · 0 评论 -
more effective c++——Item M30 代理类(二)通过代理类识别operator[]的读写操作
通过代理类延后对引用计数类string的下标索引返回值得操作,识别operator[]的读写操作原创 2017-05-06 02:17:29 · 554 阅读 · 1 评论 -
more effective c++——Item M30 代理类(一)多维数组的实现
代理类:用一个类来实现我们所需要的而 C++语言中并没有提供的东西,用户并不需要该类的具体实现总结: 1.模板类中,输入输出操作符重载不能在模板类外部实现 2.数组类需要提供基本的操作:单参构造,拷贝构造,赋值操作,输出操作符 3.n维数组类持有n-1维数组的二级指针 4.多维数组可以看作n-1维数组的叠加,构造时需要先构造row个n-1个维数组的指针,然后再原创 2017-05-05 01:03:47 · 410 阅读 · 0 评论 -
more effective c++——Item M29 引用计数(三)带引用计数的基类的实现
带引用计数的基类实现:Cstring类的实现与通过增加中间层来为不可修改源代码的实现引用计数功能原创 2017-05-05 00:44:50 · 709 阅读 · 0 评论 -
more effective c++——Item M29 引用计数(二)带静态成员变量的rfstring类实现
more effective c++——Item M29 引用计数(一)简略的rfstring类设计和写时拷贝 这篇博客中所实现的引用计数还存在未解决的问题——如何通过相同的值多次构造rfstring对象时,防止多次在堆上分配内存?可以通过在rfstring类中添加一个static list原创 2017-05-03 23:32:17 · 589 阅读 · 0 评论 -
effective C++——第二章:构造、析构和赋值(item11~item17)
一、为动态内存分配的类提供拷贝构造与赋值操作符,以避免使用缺省的拷贝构造与缺省赋值操作时由于类的成员变量间的内存拷贝造成程序crash二、尽量使用初始化而不要在构造函数里赋值 三、必须保证初始化列表中成员列出的顺序和它们在类中声明的顺序相同四、确定基类有虚析构函数五、让operator=返回*this的引用六、在operator=中对所有数据成员赋值(条款16)七、在operator=中检查自赋值的情况原创 2016-10-21 20:53:30 · 476 阅读 · 0 评论