欢迎来到天天文库
浏览记录
ID:52856904
大小:460.60 KB
页数:40页
时间:2020-03-27
《程序设计内容教程(用C、C++语言编程)第13课时 继承与多态.pptx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、继承与多态chapter13华中科技大学信息学院平台课——C语言程序设计目录content继承的实现方式1子类的构造函数顺序2多继承3多态的实现方式4虚函数表5重载、隐藏和覆盖的区别613.1继承的实现方式继承机制允许类自动从一个或更多的类中继承其特性、行为和数据结构,允许根据需要进行更具体的定义来建立新类,即派生类。派生类对于基类的继承提供了代码的重用性,而派生类的增加部分提供了对原有代码扩充和改进的能力。class<派生类名>:<继承方式><基类名>{<派生新类定义成员>};单继承定义的格式为class是关键字,<派生类名>是新定义的一个类的名字,它是从<基类名>中派生
2、的,并且是按指定的<继承方式>派生的。冒号“:”将派生类与基类的名字分开,用于建立派生类和基类之间的层次关系。13.1.1公有继承class<派生类名>:public<基类名>{<派生新类定义成员>};继承方式为public基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。基类publicprotectedprivate子类publicprotected不可见13.1.1公有继承class Student //声明基类{private:int num;string name;char sex;public:void get_value(){c
3、in >> num >> name >> sex;}void display(){cout << "num: " << num << endl;cout << "name: " << name << endl;cout << "sex: " << sex << endl;}};class Student1: public Student //派生类{private:int age;string addr;public:void get_value_1(){cin >> age >> addr;}void display_1(){//cout<<"num: "<4、endl; //错误//cout<<"name: "<:private<基类名>{<派生新类定义成员>};继承方式为private基类中的公有成员和保护成员都以私有成员的身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。基类publicprotecte5、dprivate子类privateprivate不可见class Student1: private Student{private:int age;string addr;public:void display_1(){display();cout << "age: " << age << endl; //正确cout << "address: " << addr << endl; //正确}};int main(){Student1 stud1;stud1.display_1();return 0;}13.1.2私有继承示例13-2私有继承13.1.3保护继承class6、<派生类名>:protected<基类名>{<派生新类定义成员>};继承方式为protected基类的公有成员和保护成员都以保护成员的身份出现在派生类中,而基类的私有成员变量不可直接访问。基类publicprotectedprivate子类protectedprotected不可见class Student //声明基类{protected: //基类保护成员int num;string name;char sex;public: //基类公用成员void display();};class Student1: protected Student{pr7、ivate:int age;string addr;public:void display1();};void Student1::display1(){cout << "num: " << num << endl; //引用基类的保护成员cout << "name: " << name << endl;cout << "sex: " << sex << endl;cout << "age: " << age << endl;cout << "address: " << addr << endl;}13.1.3保护
4、endl; //错误//cout<<"name: "<:private<基类名>{<派生新类定义成员>};继承方式为private基类中的公有成员和保护成员都以私有成员的身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。基类publicprotecte
5、dprivate子类privateprivate不可见class Student1: private Student{private:int age;string addr;public:void display_1(){display();cout << "age: " << age << endl; //正确cout << "address: " << addr << endl; //正确}};int main(){Student1 stud1;stud1.display_1();return 0;}13.1.2私有继承示例13-2私有继承13.1.3保护继承class
6、<派生类名>:protected<基类名>{<派生新类定义成员>};继承方式为protected基类的公有成员和保护成员都以保护成员的身份出现在派生类中,而基类的私有成员变量不可直接访问。基类publicprotectedprivate子类protectedprotected不可见class Student //声明基类{protected: //基类保护成员int num;string name;char sex;public: //基类公用成员void display();};class Student1: protected Student{pr
7、ivate:int age;string addr;public:void display1();};void Student1::display1(){cout << "num: " << num << endl; //引用基类的保护成员cout << "name: " << name << endl;cout << "sex: " << sex << endl;cout << "age: " << age << endl;cout << "address: " << addr << endl;}13.1.3保护
此文档下载收益归作者所有