第十二章继承
继承和派生
交通工具
汽车
卡车
小汽车
旅行车
工具车
轿车
面包车
轮船
飞机
Shape
Shape2D
Shape3D
Circle
Triangle
Rectangle
Sphere
Cube
Tetrahedron
通过继承,可以从已有的类派生出新类,新类在已有类的基础上新增自己的特性;
被继承的已有类称为基类(父类),派生出的新类称为派生类(子类);
继承可以减少代码的冗余性,实现代码的重用,并且通过作少量的修改,满足不断变化的具体应用要求,提高程序设计的灵活性;
派生类的定义
class 派生类名: 继承方式基类名1, …
{
成员定义;
}
基类与派生类的关系是相对的;
多继承:一个派生类有多个直接基类;
单继承:一个派生类只有一个直接基类;
A
B
C
class Student
{
protected:
int number;
char name[20];
float score;
public:
Student(int num=0, char *p="no name")
{
number = num;
strcpy(name, p);
}
void SetScore(float s=)
{ score=s; }
};
class GraduateStudent : public Student
{
protected:
char advisor[20];
public:
void SetAdvisor(char *p) {strcpy(advisor,p);}
char* GetAdvisor() {return advisor;}
};
void main()
{
Student s1(1001, "Lucy");
GraduateStudent s2;
();
("Mary");
}
Student
GradusteStudent
继承方式
继承方式指定了派生类成员以及类外对象对继承来的成员的访问权限。
三种继承方式:
公有继承(public);
保护继承(protected);
私有继承(private);
公有继承(public)
将基类的protected区成员继承到派生类的protected区,基类的public区的成员继承到派生类的public区;
派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员;
外部函数中,派生类的对象只能访问基类的public成员。
保护继承(protected)
将基类的protected区和public区的所有成员都继承到派生类的protected区;
派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员;
外部函数中,派生类的对象不能访问基类中的任何成员;
第4部分 C 继承xin 来自淘豆网www.taodocs.com转载请标明出处.