随笔 - 55  文章 - 15  trackbacks - 0
<2012年3月>
26272829123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

代码重用的手段,利用已有的类。
组合:类似于使用工具,现有的类作为子对象。砍树:斧头作为子对象
继承:类似于学习本领,现有的类作为师父。砍树:拜师练习砍树的本领。
     不论是继承还是组合,在子类中,父类或者成员对象都作为子对象存在于一块内存之中。因为构造函数只初始化本层次的内容,所以在进入构造函数之前,子对象的构造一定要完成,这是c++强制要做的,因为不能让一个未初始化的对象存在。只有在初始化列表中初始化子对象。
      子类中调用构造函数的次序:先调用父类构造函数,再调用子对象构造函数,按其声明顺序来,并不按照其在初始化列表中的顺序。析构相反。
     名字隐藏:在继承中,只要子类中出现父类函数的名字,其他名字全部被隐藏(包括修改了参数和返回值),虚函数暂不涉及(提前报告,虚函数在子类中不能修改返回值)。
    但是修改了基类函数的参数和返回值相当于修改了接口。
    非自动继承的函数:
          构造函数(拷贝构造函数)、析构函数、operator=操作符。如果不创建,编译器会自动创建。我们创建构造函数和赋值操作符的时候,最好显式地调用父类和成员对象的构造函数和赋值操作符。

     所有的多重继承都可以用单继承实现。
     向上类型转换
     原理:子类和父类的基地址相同,子类可以向上类型转换为父类,编译器将该地址做为父类的基地址。必须是引用或者指针。
     应该使用继承还是应该使用组合,看是否需要向上类型转换。
posted on 2012-06-04 14:37 Dino-Tech 阅读(199) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理