一、实验目的 1.理解类的继承和派生机制 2.掌握派生类的定义和使用 3.掌握派生类成员的标识与访问中同名覆盖原则、二元作用域分辨符和虚基类的用法 4.掌握派生类构造函数和析构函数的定义及调用次序 5.理解运算符重载的目的,掌握运算符重载函数的编写方法 二、实验准备 1. 类的继承和派生 请结合第 ...
分类:
其他好文 时间:
2018-06-06 12:32:12
阅读次数:
197
我们之前学习了函数重写,它便是在父类中被重写的函数依然会继承给子类,那么子类中重写的函数将覆盖父类中的函数,通过作用域分辨符(::)可以访问到父类中的函数。最后在全局函数中通过传递父类的指针,传递进去的是子类对象,竟然调用的不是子类中的成员函数。 下来我们就先来介绍一个概念,那便是 C++ 中的三大特性之一多态。我们在面向对象中期望的行为是:根据实际的对象类型来自动判断调用的重写函数。父类指针(引用)指向,如果是父类对象则调用父类中定义的函数,如果是子类对象则调用子类中定义的重写函数。 面向对象中的多态的概念:根据实际的对象类型决定函数调用的具体目标,同样的调用语句在实际运行时有多种不同的表现形态。
分类:
其他好文 时间:
2018-05-29 10:58:06
阅读次数:
144
?我们学习了继承,那么现在就有一个问题了:子类中是否可以定义父类中的同名成员呢?如果可以,那么将如何区分?如果不可以,为什么呢?在 C++ 中,其实子类是可以定义父类中的同名成员的,子类中的成员将隐藏父类中的同名成员。但父类中的同名成员依然存在于子类中,我们通过作用域分辨符(::)来访问父类中的同名成员。
分类:
其他好文 时间:
2018-05-27 20:53:17
阅读次数:
192
一。函数重写 1.在子类中定义与父类中原型相同的函数 2.函数重写只发生在父类与子类之间 3.父类中被重写的函数依然会继承给子类 4.默认情况下子类的重写函数会掩藏父类的函数 5.通过作用域分辨符::可以访问到父类中被隐藏的函数 二。当函数重写遇上了赋值兼容性原则 问题所在: 1.在C++和C相同, ...
分类:
其他好文 时间:
2017-10-11 15:35:59
阅读次数:
262
继承中的同名成员变量处理方法 1.当子类成员变量和父类成员变量同名时2.子类依然从父类继承同名变量3.在子类中通过作用域分辨符::进行同名成员区分(在子类中使用父类的同名成员,显式地使用类名限定符)4.同名成员存储在内存中的不同位置 继承中的static关键字 继承和stataic关键字在一起会产生 ...
分类:
其他好文 时间:
2017-03-19 22:25:18
阅读次数:
152
当某类的部分或全部直接基类是从另一个共同基类派生而来时,在这些直接基类中从上一级共同基类继承来的成员就拥有相同的名称。在派生类的对象中,这些同名数据成员在内存中同时拥有多个拷贝,同一个函数名会有多个映射。我们可以使用作用域分辨符来惟一标识并分别访问他们,也可以将共同基类设置为虚基类,这时从不同的路径 ...
分类:
其他好文 时间:
2017-01-04 07:22:49
阅读次数:
282
运算符的重载实际上是函数的重载,在实际过程中,首先把指定的运算表达式转化为对运算符函数的调用,将运算符对象转化为运算符函数的实参,然后根据实参的类型确定需要调用的函数,这个过程在编译的过程中完成。 不能重载的运算符 “.” 类属关系运算符 “.*”成员指针运算符 “::”作用域分辨符 “?:”三目运 ...
分类:
其他好文 时间:
2016-10-12 22:48:20
阅读次数:
152
1. 函数重写回顾 (1)父类中被重写的函数依然会继承给子类 (2)子类中重写的函数将覆盖父类中的函数 (3)通过作用域分辨符(::)可以访问到父类中的函数 2. 面向对象中期望的行为 (1)根据实际的对象类型判断如何调用重写函数 (2)父类指针(引用) ①指向父类对象时,则调用父类中定义的函数 ② ...
分类:
其他好文 时间:
2016-06-14 10:05:56
阅读次数:
156
1. 父子间的冲突 (1)子类可以定义父类中的同名成员 (2)子类中的成员将隐藏父类中的同名成员(同名覆盖) (3)父类中的同名成员依然存在于子类中 (4)通过作用域分辨符(::)访问父类中的同名成员 【编程实验】同名成员变量深度分析 2. 再论重载 (1)重载函数的本质为多个不同的函数 (2)函数 ...
分类:
其他好文 时间:
2016-06-09 18:36:21
阅读次数:
222
当某类的部分或全部直接基类是从另一个基类共同派生而来时,这直接基类中,从上一级基类继承来的成员就拥有相同的名称,派生类的对象的这些同名成员在内存中同时拥有多个拷贝,同一个函数名有多个映射。可以使用作用域分辨符来唯一标识并分别访问它们。也可以将共同基类设置为虚基类,这时从不同的路径继承过来的同名数据成...
分类:
编程语言 时间:
2015-06-09 23:18:19
阅读次数:
151