Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:39:20
visual c++中基类与派生类概念

visual c++中基类与派生类概念

visual c++中基类与派生类概念

面向对象的程序设计有一个非常重要的特征——继承,它是程序代码可重用性的具体体现。继承和派生是一对意义相反的概念,还是以自然界继承关系为例:



图1 自然界继承关系

从图1中可以看出,动物类继承了生物类的特征,换句话说,动物类是从生物类派生出来的。像这样,在继承关系中处于高层的类就称为低层类的基类。如图中生物类是动物类的基类;脊椎动物类是哺乳动物类的基类。与其对应的,在继承关系中处于低层的类就为高层类的派生类。如图中动物类是生物类的派生类,哺乳动物类是脊柱动物类的派生类。

单一派生

单一派生是指一个派生类只有一个直接基类,如图1所示。



图1 单一派生示意图

在图中,由于Class B是从Class A派生而来,此时,Class A就称为Class B的直接基类;与之相对,称Class A是Class C的间接基类。

下面的代码实现了上面的结构:

class A

{

//在此添入类A的成员

};

class B:public A

{

//在此添入类B的特有成员

};

由上段代码可以看出,类的单一派生使用了如下语句:

class ClassName : AccessSpecifier BaseClass

{

//派生类的新增成员

};

其中,ClassName是派生类的类名;AccessSpecifier指定了基类的继承方式,在下面会进一步探讨;BaseClass是基类的类名。

AccessSpecifier所指定的继承方式与在类中指定成员的访问权限相仿,提供public、private和protected 3个关键字,用户可以根据需要在这里使用不同的关键字。

表1列举出不同派生方式得到的派生类对基类成员的访问权限。



表1 不同派生方式得到的派生类对基类成员的访问权限

从表1中可以看出,无论使用哪种方式的派生类,其成员函数都可以访问基类中使用private关键字限定成员。但对于以public方式生成的派生类,在基类中使用public和protected关键字限定的成员,在派生类中仍然相当于使用了public或protected;对于使用protected方式生成的派生类,在基类中使用public和protected限定的成员,在派生类中都相当于使用了public关键字;而对于以private方式生成的派生类,它们都相当于使用了private关键字。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759