《EffectiveC++》条款34:区分接口继承和实现继承Public继承由两部分组成函数接口继承函数实现继承三种可能面对的继承derivedclass只继承成员函数的接口derivedclass同时继承函数的接口和实现,但又希望能够覆写它们所继承的实现derivedclass同时继承函数的接口和实现,但不允..
分类:
编程语言 时间:
2016-12-30 22:15:13
阅读次数:
196
《EffectiveC++》条款32:确定你的public继承塑模出is-a关系Publicinheritance(公开继承)意味“is-a”的关系。例子如下:classPerson{...};
classStudent:publicPerson{...};
voideat(constPerson&p);//任何人都会吃
voidstudy(constStudent&s);//只有学生才到校学习..
分类:
编程语言 时间:
2016-11-09 15:51:49
阅读次数:
153
《EffectiveC++》条款33:避免遮掩继承而来的名称遮掩行为与作用域有关。例子如下:intx;//global变量
voidsomeFun()
{
doublex;//local变量
std::cin>>x;//读一个新值赋予local变量x
}这个读取数据的语句指涉的是local变量x,而不是global变量x,因为内层作用域的名称会..
分类:
编程语言 时间:
2016-11-09 15:47:40
阅读次数:
136
《EffectiveC++》条款31:将文件间的编译依存关系降至最低假设你对C++程序的某个class实现文件做了些轻微修改。注意,修改的不是class接口,而是实现,而且只改private成分。然后重新建置这个程序,预计只花数秒就好。毕竟只有一个class被修改。当你按下“Build”按钮或键入mak..
分类:
编程语言 时间:
2016-11-09 13:16:38
阅读次数:
260
《EffectiveC++》条款20:宁以pass-by-reference-to-const替换pass-by-value缺省情况下C++以byvalue方式传递对象至函数。除非你另外知道,否则函数参数都是以实际参数的副本为初值,而调用端所获得的亦是函数返回值的一个复件。这些复件系由copy构造函数产出,这可能使得pass-b..
分类:
编程语言 时间:
2016-11-07 22:40:07
阅读次数:
214
《EffectiveC++》条款26:尽可能延后变量定义式的出现时间只要你定义了一个变量而其类型带有一个构造函数和析构函数,那么当程序的控制流到达这个变量定义式时,你便得承受构造成本;当这个变量离开作用域时,你便得承受析构成本。即使这个变量最终并未被使用,仍需耗费这些成..
分类:
编程语言 时间:
2016-11-07 22:29:38
阅读次数:
302
《EffectiveC++》读书笔记之四设计与申明条款18:让接口容易被正确使用,不易被误用。重点:好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。“促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容。“阻止误用”的办法包括建..
分类:
编程语言 时间:
2016-11-05 03:15:03
阅读次数:
152
《EffectiveC++》读书笔记之三资源管理准备知识:所谓资源就是,一旦用了它,将来必须还给系统。最常用的资源是动态分配内存,其他常见的资源有文件描述器、互斥锁、图形界面的字形和笔刷、数据库连接以及网络sockets。auto_ptr是个“类指针对象”,就是所谓的智能指针,其析构..
分类:
编程语言 时间:
2016-11-04 02:19:21
阅读次数:
172