上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: 1. 条款24举出一个Rational的例子,来说明为什么只有non-member函数才有能力"在所有实参身上实施隐式类型转换".Rational的定义如下:class Rational{public: Rational(int numerator=0,int denominator=1); ... 阅读全文
posted @ 2015-09-12 02:13 Reasno 阅读(451) 评论(0) 推荐(1) 编辑
摘要: 1. "智能指针"是行为像指针的对象,但它们能提供指针没有的功能:shared_ptr,weak_ptr,auto_ptr(见条款13)实现对堆内存的自动管理,STL的迭代器实现对整个容器的遍历等. C++内置类型指针(int*,char*等)的优势在于支持继承层次中派生类指针向基类指针的转换(当... 阅读全文
posted @ 2015-09-11 20:10 Reasno 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1. template是节省时间和避免代码重复的有效方法,而且在将类模板(class template)具现化时,编译器只具现化那些被用到的成员函数,这更加节省了空间.2. 正如两个函数存在代码重复时,倾向于把重复的代码抽出独立形成一个函数,然后让之前的函数调用这个函数,函数模板也可以这样,甚至类模... 阅读全文
posted @ 2015-09-11 18:27 Reasno 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 1. 在继承模板基类时,C++拒绝在模板化基类(templatized base classes)内寻找继承而来的名称,例如,对于以下模板基类:templateclass Base{public: void fun(){ ... } ...private: ..... 阅读全文
posted @ 2015-09-11 16:06 Reasno 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 1. 在template的声明式中,typename的使用和class完全相同,即以下两种声明方式完全相同templatetemplate然而typename还有其他用途:指明嵌套从属类型名称.2. 嵌套从属类型名称:如果template中某个名称依赖于类型参数,那么它就是从属名称,如果这个从属名称... 阅读全文
posted @ 2015-09-11 11:19 Reasno 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 1. 面向对象编程通常以显式接口(类中的函数原型)和运行时多态(虚函数和RTTI)解决问题,但在Templates及泛型编程的世界,尽管显式接口和运行时多态仍然存在,但隐式接口和编译时多态的重要性却明显提升.2.通常显式接口由函数签名式构成,而隐式借口并不基于函数声明式,而是有有效表达式组成.所谓泛... 阅读全文
posted @ 2015-09-11 10:36 Reasno 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1. 使用多重继承,派生类有可能从一个以上的基类继承相同名称,这回导致歧义.即使来自不同基类的相同名称各自的访问级别不同,也有仍然有可能造成歧义,因为C++的名称查找法则是先查找最佳匹配,然后再检查可取用性.可以使用作用域操作符明确指定所使用的名字属于那一个类.2. 如果多重继承继承的一个以上基类又... 阅读全文
posted @ 2015-09-11 10:16 Reasno 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 1. public继承表明is-a的关系,要求接口的完全继承,而private继承表明"根据某物实现出的关系",要求仅仅继承实现,private继承有两个规则: 1). 经由private继承而来的基类的所有成员在派生类中都会变成private属性 2). 由于1),编译器不允许将派生类转为基类... 阅读全文
posted @ 2015-09-10 22:48 Reasno 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 1. public继承体现is-a关系,要求接口的完全继承,而复合体现has-a或"根据某物实现出"的关系. 当复合发生在应用域(世界中的某些事物,如人,汽车,一张剪辑视频画面等)内的对象之间,表现出has-a关系,当发生在实现域(细节上的人工制品,如缓冲区,互斥器,查找树等)内,表现出is-im... 阅读全文
posted @ 2015-09-10 21:38 Reasno 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 1. 重定义一个继承而来的non-virtual函数是应该避免的(见条款34,36),因此主要讨论为什么不重定义virtual函数的缺省参数值.2. virtual函数的特点在于动态绑定,也就是运行时确定调用的函数实体,但令人惊讶的是,无论函数是否virtual,其缺省参数都是静态绑定的,例如:cl... 阅读全文
posted @ 2015-09-10 21:02 Reasno 阅读(214) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页