![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective C++
文章平均质量分 81
walkerkalr
学无止境,梦想不止
展开
-
effective C++: 6.继承与面向对象设计
六.继承与面向对象设计 条款32:确定你的public继承塑模出is-a关系 以C++进行面向对象编程,最重要的一个规则是:public inheritance(公有继承)意味is-a(是一种)的关系。 在C++领域中,任何函数如果期望获得一个类型为基类的实参(而不管是传指针或是引用),都也愿意接受一个派生类对象(而不管是传指针或是引用)。(只对public继承才成立原创 2013-12-09 20:21:03 · 872 阅读 · 0 评论 -
effective C++: 4.设计与声明
四.设计与声明 所谓软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终变成十足的细节,以允许特殊接口的开发。 条款18:让接口容易被正确使用,不易被误用 理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译;如果代码通过了编译,它的作为就该是客户所想要的。 欲开发一个“容易被正确使用,不容易被误用”的接口,首原创 2013-12-08 14:37:53 · 890 阅读 · 0 评论 -
effective C++: 9.杂项讨论
九、杂项讨论 条款52:写了placement new也要写placement delete 许多程序员习惯性地忽略编译器警告.他们任务如果是问题真的很严重的话,编译器就应该给一个错误提示信息而 不是警告信息.这种想法看起来似乎很合理,但是在C++语言上,我觉得编译器作者对代码即将会爆发的事情应该比你有 更加深入的理解,你说呢?下面我举的这个例子是多多少少在大部人原创 2013-12-12 20:11:36 · 763 阅读 · 0 评论 -
effective C++: 3资源管理
三.资源管理 所谓资源就是,一旦用了它,将来必须还给系统。C++程序中最常使用的资源就好似动态分配内存(如果你new了,却忘了delete,会导致内存泄露),但内存只是你必须管理的众多资源之一。其它常见的有文件描述符(file descriptors)、互斥器(mutex)、图形界面中的字形和画刷。数据库连接以及网络sockets。当你不使用它们时,记得还给系统。 条款13:以对象管理原创 2013-12-06 15:41:53 · 760 阅读 · 0 评论 -
effective C++: 5实现
五.实现 大多数情况下,适当提出拟的类定义以及函数声明,是花费最多心力的两件事。尽管如此,还是有很多东西需要小心:太快定义变量可能造成效率上的拖延 ;过度使用转型(casts)可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“内部数据之号码牌(handls)”可能会破坏封装并留给客户虚 吊号码牌;为考虑异常带来的冲击则可能导致资源泄漏和数据败坏;过度热心地inlini原创 2013-12-08 19:41:59 · 971 阅读 · 0 评论 -
effective C++: 7模板与泛型编程
七 模板与泛型编程 条款41:了解隐式接口和编译期多态 面向对象编程世界总是以显示接口(explicit interface)和运行期多态(runtime polymorphism)解决问题。 class Widget{ public: Widget(); virtual ~Widget(); virtual std::size_t s原创 2013-12-12 19:52:30 · 1307 阅读 · 0 评论 -
effective C++: 8.定制new和delete
八、定制new和delete 条款49:了解new-handler的行为 当 operator new 不能满足一个内存分配请求时,它抛出一个 exception(异常)。很久以前,他返回一个 null pointer(空指针),而一些比较老的编 译器还在这样做。你依然能得到以前的行为(在一定程度上),但是我要到这个 Item 的最后再讨论它。 在 oper原创 2013-12-12 20:04:10 · 884 阅读 · 0 评论 -
effective C++ 1.让自己习惯C++
一.让自己习惯C++ 条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言: C:说到底C++仍是以C为基础。区块,语句,预处理器,内置数据类型,数组,指针统统来自C。 Object-Oreinted C++:这一部分是面向对象设计之古典守则在C++上的最直接实施。类,封装,继承,多态,virtual函数等等... Template C原创 2013-12-02 15:49:31 · 636 阅读 · 0 评论 -
C++ effective 2.构造/析构/赋值运算
二.构造/析构/赋值运算 条款05:了解C++默默编写并调用哪些函数 如果你自己美声明,编译器就会为类声明(编译器版本的)一个拷贝构造函数,一个拷贝赋值操作符和一个析构函数。此外如果你没有声明任何构造函数,编译器也会成为你声明 一个默认构造函数。所有这些函数都是public且inline。 惟有当这些函数被需要(被调用),它们才会被编译器创建出来。即有需求,原创 2013-12-05 16:05:02 · 728 阅读 · 0 评论