摘要: 在程序中,有些时候我们的基类是不需要实例化的,比如有一个基类哺乳动物,这个在程序实现的时候没有必要把他实例化出来。而只是一个种群的抽象描述,也无法进行实例化。所以在C++ 我们可以创建一种叫做抽象数据类型的类。这个类只是用来继承的,单独没有实例化,没有意义。其实这也是减少了程序员编写代码后调试的调试难度。在编译器中如果用户对抽象类进行实例化,那么编译器就会报错。 c++中通过提供纯虚函数来支持抽象类,就是说,只要类中包含至少一个纯虚函数那么这个类就是抽象类。 纯虚函数的定义方法就是把虚函数初始化为0: virtual void GetAge() const {} = 0;这样派生类在继承这个. 阅读全文
posted @ 2009-02-28 00:45 刘宇石 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 前面说了多重继承但是只是讲了他的提出和一些好处,其实还是有些问题的,多重继承增加了累的继承层次的复杂性,并且它的调试难度也增加了, 这些是很多人不愿意看到的事情。这样也就增加了开发的风险。所以能够想办法用单继承的来实现的东西最好避免使用多重继承。 还有一种做法是使用混合类或者叫功能类,这个类中只放一些方法,来等待调用,这些方法都是共通的一些方法,而真正的数据都是存在于其他的类中。很多类都可以同他一起派生出新的类出来,但我们不必担心会有同名方法的存在,因为方法很多都是在这个功能类中。 这里说到同名方法,解决同名方法的问题还可以利用虚继承的方法,如果有个Animal类,从他派生出来的Horse类. 阅读全文
posted @ 2009-02-28 00:12 刘宇石 阅读(989) 评论(0) 推荐(0) 编辑