欢迎来到天天文库
浏览记录
ID:40238268
大小:786.00 KB
页数:61页
时间:2019-07-28
《C++程序设计教程 杨国兴及例题 第7章 继承与派生》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章继承与派生7.1类的继承与派生7.2类的继承方式7.3派生类的构造过程和析构过程7.4多继承7.1类的继承与派生7.1.1继承与派生的基本概念在原有类的基础上派生出新的类,新类继承原有类的属性和方法,称原有的类为基类,新类称为派生类。第7章继承与派生人类: 姓名、性别、年龄、身高、体重教师类: 姓名、性别、年龄、身高、体重、专业、职称管理人员类: 姓名、性别、年龄、身高、体重、职务教师管理人员类:姓名、性别、年龄、身高、体重、专业、职称、职务学生类: 姓
2、名、性别、年龄、身高、体重、学号、班级、专业人类教师类学生类管理人员类教师管理人员类多继承:派生类有多个基类单继承:派生类只有一个基类直接基类间接基类7.1类的继承与派生7.1.2派生类的声明单继承派生类的声明语法为:class派生类名:继承方式基类名{派生类新增成员的声明;}继承方式有三种(private,protected,public),在下一节中详细介绍。第7章继承与派生例7.1定义一个位置坐标类,属性有x坐标和y坐标,成员函数包括构造函数、获取x坐标的函数、获取y坐标的函数和移动位置到新的坐标点函数。然后定义派生类点类,除了继承基类(位置类)的成员外,
3、又增加了新的数据成员颜色、获取颜色值的成员函数和显示数据成员值的函数。#include#includeclassCLocation//位置坐标类{private:intx;inty;public:CLocation(intx=0,inty=0);voidMoveTo(intx,inty);intGetx();intGety();};第7章继承与派生例7.1(续一)CLocation::CLocation(intx,inty){CLocation::x=x;//可以写成this->x=x;CLocation::y=y;/
4、/可以写成this->y=y;}voidCLocation::MoveTo(intx,inty){CLocation::x=x;//可以写成this->x=x;CLocation::y=y;//可以写成this->y=y;}intCLocation::Getx(){returnx;}intCLocation::Gety(){returny;}可通过域运算符(::)访问类中的成员x和y,与使用this指针有同样作用第7章继承与派生例7.1(续二)classCPoint:publicCLocation//从CLocation中公有继承{private:charCol
5、or[10];public:CPoint(char*c);voidSetColor(char*c);voidShow();};CPoint::CPoint(char*c){strcpy(Color,c);}voidCPoint::SetColor(char*c){strcpy(Color,c);}voidCPoint::Show(){cout<6、tp("Red");p.Show();p.MoveTo(7,8);p.Show();p.SetColor("Green");p.Show();}位置坐标通过CLocation类构造函数的默认参数值设置为(0,0)程序运行结果为:0,0Red7,8Red7,8Green第7章继承与派生返回7.2类的继承方式类成员的访问权限:私有成员(private):可以被类自身的成员和友元访问,但不能被包括派生类在内的其他任何类和任何普通函数访问公有成员(public):可以被任何普通函数和任何类的成员函数访问保护成员(protected):可以被类自身的成员和友元访问外,还可7、以被派生类的成员函数访问,但不能被任何非友元的普通函数访问类的三种继承方式:公有继承(public):保护继承(protected):私有继承(private):第7章继承与派生7.2类的继承方式7.2.1公有继承公有继承的特点:(1)基类的私有成员不能被派生类的函数成员访问(2)基类的公有成员和保护成员在派生类中的访问权限不变分析例7.1基类CLocation中的公有成员Getx()、Gety()和MoveTo(),在派生类CPoint中的访问权限仍然是公有的。而x,y是基类CLocation的私有成员,在派生类CPoint的成员函数中不能访问。如果将CPoi8、nt类的成员函数Show
6、tp("Red");p.Show();p.MoveTo(7,8);p.Show();p.SetColor("Green");p.Show();}位置坐标通过CLocation类构造函数的默认参数值设置为(0,0)程序运行结果为:0,0Red7,8Red7,8Green第7章继承与派生返回7.2类的继承方式类成员的访问权限:私有成员(private):可以被类自身的成员和友元访问,但不能被包括派生类在内的其他任何类和任何普通函数访问公有成员(public):可以被任何普通函数和任何类的成员函数访问保护成员(protected):可以被类自身的成员和友元访问外,还可
7、以被派生类的成员函数访问,但不能被任何非友元的普通函数访问类的三种继承方式:公有继承(public):保护继承(protected):私有继承(private):第7章继承与派生7.2类的继承方式7.2.1公有继承公有继承的特点:(1)基类的私有成员不能被派生类的函数成员访问(2)基类的公有成员和保护成员在派生类中的访问权限不变分析例7.1基类CLocation中的公有成员Getx()、Gety()和MoveTo(),在派生类CPoint中的访问权限仍然是公有的。而x,y是基类CLocation的私有成员,在派生类CPoint的成员函数中不能访问。如果将CPoi
8、nt类的成员函数Show
此文档下载收益归作者所有