赞
踩
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。
- class Person
- {
- public:
- void Print()
- {
- cout << "name:" << _name << endl;
- cout << "age:" << _age << endl;
- }
- protected:
- string _name = "peter"; // 姓名
- int _age = 18; // 年龄
- };
-
- // 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。这里体现出了Student
- //和Teacher复用了Person的成员。下面我们使用监视窗口查看Student和Teacher对象,可以看到变量的
- //复用。调用Print可以看到成员函数的复用。
-
- class Student : public Person
- {
- protected:
- int _stuid; // 学号
- };
-
- class Teacher : public Person
- {
- protected:
- int _jobid; // 工号
- };
- int main()
- {
- Student s;
- Teacher t;
- s.Print();
- t.Print();
- return 0;
- }
1.2.1定义格式
下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。
- 派生类 继承方式 基类
- class Student :public Person
- {
- public:
- int _stuid; //学号
- int _major; //专业
- };
1.2.2继承关系和访问限定符
1.2.3继承基类成员访问方式的变化
类成员/继承方式 | public继承 | protected继承 | private继承 |
基类的public成员 | 派生类的public成员 | 派生类的protected成员 | 派生类的private成员 |
基类的protected成员 | 派生类的protected成员 | 派生类的protected成员 | 派生类的private成员 |
基类的private成员 | 在派生类中不可见 | 在派生类中不可见 | 在派生类中不可见 |
- // 实例演示三种继承关系下基类成员的各类型成员访问关系的变化
- class Person
- {
- public :
- void Print ()
- {
- cout<<_name <<endl;
- }
- prote
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。