Item 15 使类和成员的可访问性最小化 1、一个设计的好的组件应该隐藏它的所有实现细节,清晰地将它的 API 以及具体实现分开。 2、尽可能的使用低级别的访问级别,降低类和成员的可访问性。 3、如果一个包私有的顶层类或接口只被一个类使用,考虑将它变为私有的静态内部类。 3、设计类的时候首先设计你 ...
分类:
编程语言 时间:
2018-06-15 20:58:24
阅读次数:
177
如果是自我赋值,那rhs.pb就已经被delete pb了。 ...
分类:
编程语言 时间:
2018-06-15 16:12:22
阅读次数:
201
记住:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class。 解决方法 注意,定义createLogString为static, 避免意外使用BuyTransaction对象内尚未初始化的成员变量。 ...
分类:
编程语言 时间:
2018-06-11 22:45:20
阅读次数:
277
记住:带多态性质的基类应该声明一个virtual析构函数。如果class带有任何virtual函数,它就应该拥有一个virtual析构函数。class的设计目的如果不是作为基类使用,或不是为了具备多态性,就不该声明virtual析构函数。 解决这个问题,只需要 virtual函数的目的是允许deri ...
分类:
编程语言 时间:
2018-06-10 22:09:33
阅读次数:
257
记住:如果没有声明任何构造函数,编译器会声明一个默认构造函数。如果自己没有声明,编译器会声明一个拷贝构造函数,一个赋值操作符和一个析构函数。 不能。对于内含引用成员的类,必须自己定义赋值操作符。 更改const成员是不合法的。另外,如果父类将copy assignment操作符声明为private, ...
分类:
编程语言 时间:
2018-06-09 23:19:39
阅读次数:
221
记住:为防止编译器暗自提供的功能,可将相应的成员函数声明为privae并且不予实现。也可以使用Uncopyable这样的父类实现。 对于独一无二的对象,希望不支持拷贝构造函数和赋值操作符。 另一种方法 基类中 继承方式 子类中 public & public继承 => publicpublic & ...
分类:
编程语言 时间:
2018-06-09 23:14:16
阅读次数:
269
记住: 对于内置类型以外的任何其它东西,初始化责任落在构造函数身上,确保每个构造函数都将对象的每一个成员初始化。 C++规定,对象的成员变量的初始化动作发生在进入构造函数本体之前。 使用成员初始化列表替换构造函数内的赋值动作。 如果成员变量是const或reference,它们就一定需要初值,不能被 ...
分类:
编程语言 时间:
2018-06-09 18:55:46
阅读次数:
165
1、不会做题,就不会写程序。 数据结构 -Java慕课 程序设计与算法-LeedCode+北京大学 2、不会Java知识,框架知识,容易写很多错误冗余的程序 Java基础巩固 Java多线程-并发编程的艺术/并发与高并发课 Java框架-架构探险 Effective Java 3、了解一下互联网的架 ...
分类:
其他好文 时间:
2018-06-09 10:13:40
阅读次数:
136
#define ASPECT_RATIO 1.653 const double AspectRatio = 1.653; //better ...
分类:
编程语言 时间:
2018-06-08 14:21:28
阅读次数:
153
前言 从去年的3月份起我就在开始读《Effective Java 第二版》,当然,我读的是中文版的;可能是我理解能力还不行,对于书中的内容总是感觉理解困难;就拿第一章的内容「创建和销毁对象」来说吧,这是我读的次数最多的一章,想必原因大家也是明白的,每次我读不下去的时候,我就从头开始读,所以,现在我对 ...
分类:
编程语言 时间:
2018-06-06 00:59:41
阅读次数:
243