偶感得到一本好书,所以分享下心得,看的很慢,呵呵。
总括:此部分写的还是比较好,特别是第一章,介绍了面向对象编程的特别,关键是从一个解决问题的角度来分析,相比较而言,C++ Primer更显得杂乱无章。通过对问题深入,根据解决问题的方法,来实现最合理化的得到目的,从而引出继承等等一系列概念和手段。
1.
构造器
e.g Data(int
monthln,int dayln,int yearln)
{
Month = monthln;
Day =
dayln;
Year =
yearln;
}
Date thedate(7,1,2003);
Date thisdate;
第一个调用了用户定义的构造函数来初始化相应的数据,问题是,如果是0-参数的构造器呢?就是下面的那种情况,没有任何参数,默认的,编译器会自动生成一个,这个就是缺省构造函数,但是如果用户定义了一个0-参数的构造器,那么就不会自动生成这样一个了。从安全性角度去看,定义类的时候,应当显示的定义一个缺省构造函数(如果有继承的话,没有定义基类的缺省构造函数是会出现编译错误的。)
注意:一个构造器,不管有没有参数,都不会自动初始化类的字段,所以必须自己显式的写出代码来初始化。
|
2.
继承的细节
我们可能经常遇到这样的问题,在开发一个类B的时候,发现其他的一些类A的方法是非常有用的。一个可能性就是令B从A继承,也就是说,B是A的子类,这样就可以使用A的所有方法;还有一种方案,就是在B中定义一个字段,它的类型是A,通过这个字段调用A的方法。前者,就是“Is a”(是一个)的关系,而后者就是”Has a”(有一个的关系)。如何实现这种区分更好的来规划呢,一般,如果类B分享了A的全部功能,那么B从A继承是更好的选择,但是如果B中只有一个组件能从A中受益,那么就是Has a来实现了。。
|
posted on 2009-11-11 22:49
deercoder 阅读(363)
评论(0) 编辑 收藏 引用 所属分类:
C/C++