C++面向对象编程,继承,数据抽象,动态绑定

派生类(derived class)能够继承基类(base class )定义的成员:

1)、派生类可以无需改变而使用那些与派生类具体特性不相关的操作

2)、可以重新定义那些与派生类相关的成员函数,将函数特化,考虑派生类型的特性

3)、除了从基类继承的成员外,派生类还可以定义更多的成员

C++中,基类必须指出希望派生类重新定义那些函数,定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。

1、定义基类(基类成员):

virtual: 除了构造函数之外,任何非static成员函数都可以是虚函数。保留字virtual的目的是启用动态绑定:在C++中,通过基类的引用(或指针)调用函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象。

public和private成员:用户和派生类可以访问public成员而不能访问private成员。

protected成员:允许派生类访问但是仍然禁止其他用户访问这些成员。

提供给派生类型的接口是protected成员和public成员的组合

2、派生类

定义派生类:

class classname: access-label base-class

这里的access-label(访问标号)可以是public,protected或privated。派生类可以定义0个或者多个访问标号,指定跟随其后的成员的访问级别。对类所继承的成员的访问由基类中的成员访问集合和派生类派生列表中使用的访问标号共同控制,派生类可以进一步限制但不能放松对所继承的成员的访问。

[注意]:也可以使用using声明访问基类中的名字。C++primer P484

默认继承保护级别:使用class保留字定义的派生类默认具有private继承,而用struct保留字定义的类默认具有public继承

友元关系与继承:

析构函数:类的特殊的成员函数,作用:用于释放在构造函数或者对象生命期内获取的资源。撤销类对象时会自动调用析构函数,来完成所需的资源回收,作为类构造函数的补充

~Sales_items() { }

析构函数并不仅仅限于用来释放资源。一般而言,析构函数可以执行任意操作,该操作是类设计者希望在该类对象的使用完毕之后执行的。

编写析构函数:在类内定义,在类名字之前加上一个代字号(~)

原文地址:https://www.cnblogs.com/rong86/p/3448628.html