c++语言学习课件OOP2011_1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言学习课件OOP2011_1

* 私有继承 * 在派生类中访问基类成员 * 保护的成员 对V模块是public 对H模块是private * 多继承 可以将其视为单继承来考察,每个基类与派生类的关系可以当做单基继承。 * 8.2构造函数和析构函数 派生类的数据成员由属于基类的部分和属于自己的部分组成,属于基类的部分初始化应由基类的构造函数完成。 构造函数不被继承,派生类必须调用基类的构造函数来初始化属于基类的部分数据成员。 一般形式如下: C::C(参数表0):C1(参数表1),C2(参数表2),…,Cn(参数表n) {…} * 构造函数和析构函数 如果冒号右边的某个基类的构造函数参数表为空,则可以省略该项。 构造对象时,先执行基类的构造函数,然后执行派生类的构造函数。析构时则相反。 多基继承时基类构造函数的执行顺序由继承时的顺序决定(从左向右),与初始化列表中的顺序无关。 * 构造函数和析构函数 * 构造函数和析构函数 * 构造函数和析构函数 * 8.3二义性 如果派生类的一个表达式引用基类中不止一个成员,则存在二义性。 解决二义性的办法是加类限定符。 * 二义性 * 二义性 如果一个派生类是从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的标识符进行访问时可能产生二义性。 * 二义性 B{b} B1{b1} C{f(),d} B{b} B2{b2} * 二义性 * 虚基类 为避免一个基类在多条继承路径上造成在派生类中产生多个基类子对象,可以采用虚基类技术。 语法如下 class B1:virtual public B{} class B2:virtual public B{} class C:public B1,public B2{} * 派生类的赋值和初始化 如未定义拷贝构造函数和赋值操作,则编译器提供。 如自定义,则应在实现中调用基类的拷贝构造函数和赋值操作。 * 8.4 虚函数与多态性 如果类型S是从类型T共有继承的,则称类型S是类型T的子类型。 类型S的指针或引用可以适用于类型T的指针或引用的场合。 * 动态绑定与虚函数 由于在基类和派生类中,相同的名字执行的操作可能不同,所以基类的成员函数在派生类中经常有不同的实现。 用virtual关键字可以实现动态绑定。 动态绑定只适用于虚函数的参数是指针或引用的情况。 * 动态绑定与虚函数 * 动态绑定与虚函数 * 动态绑定与虚函数 * 动态绑定与虚函数 在一个成员函数内调用虚函数时,对该虚函数的调用进行动态绑定。 派生类中虚函数必须满足下列条件: 与基类的函数有相同个数的参数 参数类型相同 返回类型或者与基类相同或者返回指针或引用,且返回的指针或引用的基类型是基类中对应函数所返回的指针或引用的基类型的子类型。 在一个成员函数内调用虚函数时,对该虚函数的调用进行静态绑定。 * 纯虚函数与抽象类 当定义基类时某个虚函数不能给出确定的实现时,可以定义其为纯虚函数。 语法如下 virtual 类型 函数名(参数列表)=0; 具有纯虚函数的类称为抽象类, 抽象类只能用来派生类而不能定义具体的对象。 * 纯虚函数与抽象类 * * * * 举例 * 6.3引用 是标识对象的一种机制(是对象的一个别名) 一般用作参数类型、函数返回类型。 一般语法如下: 基本类型 标识符 一个引用不是独立的对象,只是对另一个对象的引用。 基本类型 标识符=对象; * * * 栈对象与堆对象 在程序运行中根据需要在堆内存中创建的对象,使用完成后随时被删除。 创建语法如下: T* ptr=new T(初始值列表); 删除语法如下: delete ptr; 数组对象的创建 int* ptr=new int[10]; 数组对象的删除 delete[] ptr; * * * * 6.4指针数组 数组元素的类型是指针,这样的数组称指针数组。 语法: T* 标识符[元素个数]; * 多维数组与指针 多维数组可以解释为其元素是多维数组的一维数组。 * 6.5this指针 一个成员函数被调用时,被自动传递一个隐含的参数,该参数是一个指向正被该函数操作的对象的指针,在程序中可以用this引用它,因此称其为this指针。 * 6.6具有子对象的类类型 用内部包含子对象的类实现复杂的类 子对象的初始化 * * * * 第七章 操作符重载 当使用操作符来表达对对象的某个操作时,可以将操作符函数声明为类的成员函数或类的友员函数。 操作符的参数个数、优先级、结合性和使用语法是由C++规定的,不能被改变。 重载操作符的形参不能具有缺省值。 重载操作符的返回值类型任意,但最好不是void 。 * 7.1重载为类的成员函数 * 重载为类的成员函数 * 重载为类的成员函数 * 重载为类的成员函数 * 7.2重载为类的友元函数 * 重载为类的友元函

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档