我的阶段性编程总结

  • 一.组合
    1.面向对象方法的核心概念是封装、继承和多态性。
    2.将一个类的对象作为另一个类的成员,可以实现"has-a"关系或"is-part-of"关系,即组合关系。对象成员语法也被称作组合或包含。对象成员语法常用来实现组合关系,因此不刻意区分。
    3.如果将嵌入的对象作为新类的公有成员,那么除了使用新类中提供的功能之外,还可以向其中的成员对象发送消息。
    ​4.对象成员是组合对象的一部分,随着组合对象的创建而创建,随着组合对象的撤销而撤销,成员对象并不作为独立元素对外部展现。
    5​.成员初始化的次序和成员声明的次序相同,并不考虑它们在初始化列表中的排列顺序。
    6.复用类的使用
    (1).​复用Xcircle类。
    (2).​应用组合,重新包装,对外提供新接口。
    二.继承
    1.​继承是面向对象的核心特征之一,也是一种复用已有类的机制。在C++中,被继承的已有类称为基类,继承得到的新类称为派生类。派生类可以再被继承,这样构成的层次结构称为继承层次。
    2.​继承是在已有类的基础上创建新类的过程。
    3.​不论以哪种方式继承基类,派生类都不能直接使用基类的私有成员。
    4.派生类的​生成过程经历了三个步骤:
    (1).​吸收基类成员
    ·在C++的继承机制中,派生类吸收基类中除构造函数和析构函数之外的全部成员。
    (2).改造基类成员
    ·通过在派生类中定义同名成员来屏蔽在派生类中不起作用的部分基类成员。
    (3).​添加派生类新成员
    ·仅仅继承基类的成员是不够的,需要在派生类中添加新成员,以保证派生类自身特殊属性和行为的实现。
    5.派生类定义了与基类同名的成员,在派生类中访问同名成员时屏蔽了基类的同名成员。在派生类中使用基类的同名成员,显式的使用类名限定符:  类名::成员。
    6.如果基类没有定义构造函数或有无参的构造函数,派生类也可以不用定义构造函数。
    7.如果基类无无参的构造函数,派生类必须定义构造函数。
    8.如果派生类的基类也是派生类,则每个派生类只负责直接基类的构造。
    9.派生类是否定义析构函数与所属的基类无关。
    三.虚函数与多态
    1.多态性是指一个名字,多种语义;或界面相同多种实现。重载函数是多态性的一种简单形式。虚函数允许函数调用与函数体的联系在运行时才进行,称为动态联编。
    2.冠以关键字virtual的成员函数称为虚函数。实现运行时多态的关键首先是要说明虚函数,另外,必须用基类指针调用派生类的不同实现版本。
    3.一个虚函数,在派生类层界面相同的重载函数都保持虚特性。虚函数必须是类的成员函数。虚函数可以是另一个类的友元。析构函数可以是虚函数,但构造函数不能是虚函数。
    4.在派生类中重载基类的虚函数要求函数名、返回类型、参数个数、参数类型和顺序完全相同。如果函数原型不同,仅函数名相同,丢失虚特性。
    5.构造函数不能是虚函数。建立一个派生类对象时,必须从类层次的根开始,沿着继承路径逐个调用基类的构造函数。
    6.构造函数、内联成员函数、静态成员函数不能是虚函数。析构函数可以是虚函数,通常声明为虚函数。一般通过基类指针访问虚函数时才能体现多态性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值