`
wangxiaohigh
  • 浏览: 1426837 次
文章分类
社区版块
存档分类
最新评论

类与类之关系

 
阅读更多

为了便于说明,在这里我摘找了两个类的定义如下:

Sphere类作为基类


Ball为其派生类Ball为其派生类


1、派生类的实例继承包含继承数据成员的副本,但所继承成员函数的代码并没有复制过来。虽然派生类继承了基类,但不能访问基类的私有成员。继承并不意味着访问。可继承一个封闭的数据单元,却打不开它。在本例中Sphere的数据成员theRadius 是私有的,故只能在Sphere的定义中使用,但不能在Ball的定义中引用。但可以通过Sphere的公用成员函数访问。

2、公有,私有和保护继承:可以进行几种类型的继承,无论使用哪一种继承方式,派生类都可以使用基类的所用公有和受保护成员,但不能访问其私有成员。公有继承:基类的公有成员和受保护成员依然分别为派生类的公有成员和受保护成员。私有继承:基类的公有成员和受保护成员成为派生类的私有成员受保护继承:积累的公有成员和受保护成员成为派生类的受保护成员。在所有的继承类别中,基类的私有成员都保留为基类的私有成员,派生类不能访问他们。

3、静态绑定:执行成员函数的哪个版本是根据对象声明时采用的类型在编译期间确定的。
后期绑定:执行成员函数的哪个版本是根据对象的类型在执行期间确定的,而不是在编译期间确定的。

4、虚函数的要点:

1)虚函数是派生类可以重写的函数
2)必须实现类的虚函数(纯虚函数没有这个要求)
3)派生类不需要重写所继承基类的已有实现代码
4)一般情况下,类的成员函数应是虚函数,除非不希望派生类重写他们。
5)构造函数不是虚函数。
6)析构函数可以是虚函数,也应是虚函数。虚函数确保对象将来的子对象可以正确的解除内存它们自己的内存分配。
7)虚函数的返回类型不能重写。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics