C第11章继承与派生PPT课件

合集下载

继承与派生

继承与派生

4.2 派生类
派生类对基类的保护继承,可以在设计派生类的成员 函数以及派生类的子派生类的成员函数时,调用基类中 类似的成员函数,从而简化派生类成员函数以及派生类 的子派生类成员函数的设计。 上述三种继承方式中,基类成员存取权限和派生类成 员存取权限的关系如表4.1所示。
表4.1 基类成员在派生类中的访问属性
4.1 继承和派生的概念
4.1.1 继承的层次结构 现实中的很多事物是具有继承性的,人们一般用层 次分类的方法来描述它们。例如图4-1是一个简单的汽车 分类图。继承是一种层次模型,它通过层次结构简化了 人们对事物的认识和描述。
图4-1 汽车分类图
4.1 继承和派生的概念
分类图中建立了一个层次结构,最高层是最普遍、最 一般的,每一层都比它的前一层更具体,低层含有高层的 特性,同时也与高层有细微的不同,它们之间是基类和派 生类的关系。对于民用汽车类来说汽车类是它的基类,也 称为父类超类;而客车是它的派生类,也称为子类。例如 确定某一辆车是客车以后,没有必要wk.baidu.com出它是进行民用的, 因为客车本身就是从民用汽车类派生出来的,它继承了这 一特性,同样也不必指出它会自行驱动,因为凡是汽车都 会自行驱动。客车是从民用汽车类中派生而来,而民用汽 车类又是从汽车类派生而来,因此客车也可以继承汽车类 的 - 般特性。比如认识了民用汽车的特征之后,在考察客 车类时只要知道客车也是一种民用汽车这个事实,那就认 为它理所当然的具有民用汽车的全部一般特征,只需要把 精力用于发现和描述客车独有的那些特征。

派生类(继承)的概念

派生类(继承)的概念
4.1 派生类的概念
class student:public person{ int score; int grade; public: student(……); void print( ) {cout<<name<<“ “<<age <<“ “<<sex<<“ ”<<score <<“ “<<grade<<endl;} }; 从基类person中继承来的私 有数据成员name、age、sex 在派生类中不能直接访问, 如何解决?
类2
下一页 下一节
4.1.2 派生类的声明
引例:构造学生类和雇员类
class student{ char name[10]; int age; char sex; int score; int grade; public: student(……); void print( ) {cout<<name<<“ “ <<age<<“ “<<sex<< “ ”<<score<<“ “<< grade<<endl;} };
4.1 派生类的概念
上一节 上一页 下一页 下一节
小 结
通过继承,可以在派生类中完成以下功能

C程序设计教程PPT演示文稿

C程序设计教程PPT演示文稿

点和圆--继承和组合
点的设计:点的坐标,角度,距离,点的移动,点的加操作,点的赋值加操作 圆的设计:圆点,半径,面积,周长,圆的移动,半径的修改 新增成员:半径,面积计算,周长计算,移动操作,半径修改操作 继承设计 圆是一个半径不为0的点。 组合设计 圆里有一个类型为Point的圆点
10.6 多继承概念
10.4 继承方式
继承访问控制 public protected private 调整访问控制 private protected
10.5 继承与组合
对象结构 性质差异 继承设计 组合设计
gs对象 name semesterHours average advisor qualifierGrade
10.1 继承结构
类层次结构
派生类对象结构
class 子类类名 : 继承类型 基类类名{ //子类类定义 ………… } 继承类型: private public protected
10.2 访问父类成员
继承父类成员 父类成员在内存结构中存在于子类对象中,所以父类成员在一定条件下可以被子类代码或外部代码访问 类内访问控制 私有 保护 公有
基类分解
10.7 多继承技术
虚拟继承
class 派生类1:virtual public 基类 { ………… //派生类1类定义 } class 派生类2:virtual public 基类 { ………… //派生类2类定义 } class 派生类子类:public 派生类1,public 派生类2 { ………… //派生类子类类定义 }

《C++程序设计教程(第2版)》教学课件—04继承与派生

《C++程序设计教程(第2版)》教学课件—04继承与派生

string getName();
//获取姓名的成员函数
protected:
string _grade;
//保护成员:年级
private:
string _name;
//私有成员:姓名
};

4.1.2 继承方式
void Student::setGrade(string grade){ _grade=grade;
} string Student::getGrade(){
return _grade; } void Student::setName(string name){
_name=name; } string Student::getName(){
return _name; }

4.1.1 继承的概念
通过继承,基类中的所有成 员(构造函数和析构函数除 外)被派生类继承,成为派 生类成员,在此基础上,派 生类还可以增加新的成员。
基类
属性 方法
继承
派生类
基类属性 基类方法
派生类属性 派生类方法

4.1.1 继承的概念
//例4-1 derive.cpp class Animal{ public:
void move();}; void Animal::move(){ cout<<"动物行为"<<endl; } class Cat :public Animal{ public: Cat(string name); void walk(); private: string _name; };

C 课件 第十一章 继承和派生类

C  课件 第十一章 继承和派生类

void print( ) const //const成员函数:不能改变类中成 成员函数: 成员函数 员数据的值, 员数据的值,也不能调用类中非 const成员函数 成员函数 { cout<<“name:”<<name; cout<<“age:”<<age; cout<<“salary:”<<salary<<endl; } ~employee( ) { delete [ ]name; } }; Manager: 除具有employee的属性外,有新的属性。为避免重复定义, 除具有 的属性外,有新的属性。为避免重复定义, 的属性外 可从employee中派生出 中派生出manager(派生类)。 可从 中派生出 (派生类)。
#include <string.h> class employee{ private: char *name; short age; float salary; public: employee( ) { name=0; age=0; salary=0.0; } employee(char *name1, short age1, float salary1) { name=new char[strlen(name1)+1]; strcpy(name,name1); age=age1; salary=salary1; }

继承ppt课件

继承ppt课件

遗嘱必须是遗嘱人的真实意思表 示
遗嘱必须是基于遗嘱人的自愿,没有受到 任何威胁、欺诈或误导,完全反映了遗嘱 人的真实意愿。
遗嘱的内容必须合法
遗嘱的形式必须符合法律规定
遗嘱的内容必须符合法律规定,不能违反 社会公共利益或侵犯他人的合法权益。
遗嘱必须采用法律规定的形式,如自书遗 嘱、代书遗嘱、录音录像遗嘱等,并且必 须符合相应的法定要求。
仲裁解决主要适用于商业纠纷和合同纠纷。在继 承纠纷中,如果当事人之间存在有效的仲裁协议 ,也可以选择仲裁解决方式。
仲裁解决的优势
仲裁解决具有保密性和快捷性,能够迅速解决纠 纷,避免法庭审判的繁琐程序和时间延误。同时 ,仲裁结果具有法律效力,当事人必须遵守裁决 结果。
仲裁解决的注意事项
在选择仲裁解决时,当事人应当了解仲裁机构的 资质和信誉,并确保仲裁协议的合法性和有效性 。同时,当事人还应当注意遵守仲裁程序和仲裁 裁决的效力。
办理相关手续
在分配完遗产后,应当办理相 关的手续,如注销财产所有权 等。
CHAPTER 06
继承与税收的关系
遗产税的征收
01
02
03
遗产税定义
遗产税是对财产所有人去 世后留下的遗产进行征税 的税种。
征收目的
增加政府财政收入,调节 社会财富分配,减少贫富 差距。
征收方式
通常采用累进税率,根据 遗产价值的不同区间,适 用不同的税率。

C语言程序设计PPT第七章继承与派生

C语言程序设计PPT第七章继承与派生

问 控
既实现了数据隐藏,又方便继承,实 现代码重用。

18
C++语言程序设计
例7-3 protected 成员举例

成 class A {

protected:

int x;
访}
问 int main()
控{

A a;
a.x=5; //错误
}
19
class A { protected: int x;
访
{Point::Move(xOff,yOff);}
问 控
float GetX() {return Point::GetX();} float GetY() {return Point::GetY();} float GetH() {return H;}

float GetW() {return W;}
问 控 制
类中的public和protected成员,但 不能直接访问基类的private成员。
通过派生类的对象不能直接访问基类 中的任何成员
17
C++语言程序设计
protected 成员的特点与作用

成 对建立其所在类对象的模块来说,它
员 与 private 成员的性质相同。
的 对于其派生类来说,它与 public 成 访 员的性质相同。

一、组 合二、继承和派生三、派生类的声明和对象定义

一、组 合二、继承和派生三、派生类的声明和对象定义
C/C++程序设计
一、组 合 二、继承和派生 三、派生类的声明和对象定义
1
C/C++程序设计
一、组 合
1. 组合的概念
C++中组合是指结构和类的声明嵌入结构变量或对象作 为其成员的现象。嵌入的对象成员亦称为成员对象,包容这 个成员对象的类可称为组合类或包容类。 当构造一个组合类的对象时,系统首先为每一个数据成 员分配内存空间,仅当其中的成员对象获得完备的内存时才 导致组合类实例的诞生。 编译器先调用嵌入对象的构造函数,然后调用组合类的 构造函数。
8
C/C++程序设计
3. 嵌入对象的初始化
嵌入对象所属类最好存在显式或隐含的可访问的缺省构 造函数,从而可被编译器自动隐含调用。下面的规则描述嵌 入对象显式的初始化: a.组合类的构造函数显式调用嵌入对象自身的带参构 造函数,这一调用是通过冒号初始化语法进行的。 b. 嵌入对象按照其在组合类中的声明次序调用自身的 构造函数,而不是冒号语法列表中出现的次序。 c. 嵌入对象的构造函数对于组合类是可访问的,可访 问的含义是或者嵌入对象的构造函数是公共的,或者组合类 声明为嵌入类的友员类等。
22
C/C++程序设计
CBase:: m_t1; 基类名::基类非私有的成员名1; private: 私有成员声明语句; CBase:: f3; 基类名::基类非私有的成员名3; }; // 不将基类中private:冒号界定的私有成员在派生类中 //界定为其它的属性

派生与继承

派生与继承

继承与派生
(2)改造。改造是指对吸收进来的基类成员的改 改造。 改造 造。它包括两个方面:一个是对基类成员访问 它包括两个方面: 控制的调整, 控制的调整,它是通过派生类定义时的继承方 式来确定。另一个就是对基类成员的隐藏, 式来确定。另一个就是对基类成员的隐藏,即 在派生类中声明一个与基类成员同名的新成员, 在派生类中声明一个与基类成员同名的新成员, 这个新成员就隐藏了上层的所有同名成员。 这个新成员就隐藏了上层的所有同名成员。这 时,在派生类中或者通过派生类的对象来直接 使用该成员名, 使用该成员名,就只能访问到派生类中声明的 同名成员,这称为同名隐藏或同名覆盖。 同名成员,这称为同名隐藏或同名覆盖。
继承与派生
所谓继承, 所谓继承,就是新的类从已有的类那里获取它们全部特性 继承 并加以改造和扩充的机制。从另一个角度说, 并加以改造和扩充的机制。从另一个角度说,从已有的类 产生新类的机制就是类的派生 已有的类称为基类或父类, 派生。 基类或父类 产生新类的机制就是类的派生。已有的类称为基类或父类, 产生的新类称为派生类或子类。 派生类或子类 产生的新类称为派生类或子类。派生类同样也可以作为基 类再派生新的类,这样就形成了类的层次结构。 类再派生新的类,这样就形成了类的层次结构。
பைடு நூலகம்
派生类的三种继承方式
Student类中的成员: 类中的成员: 类中的成员 class Person //声明基类 声明基类Person 声明基类 { protected: private : score int number; //学号 学号 protected:number name sex age char name[20]; //姓名 姓名 char sex; //性别 性别 public: setInfo() show() int age; //年龄 年龄 public: void setInfo(char name[],char sex,int age); void show(); //显示人信息 显示人信息 }; class Student:public Person //声明派生类 声明派生类Student 声明派生类 { private: float score; //成绩 成绩 public: void setInfo(int number,char name[],char sex,int age,float score); void show(); //显示学生信息 显示学生信息 };

继承与派生:派生类对基类成员的访问控制之保护继承与私有继承(转)

继承与派生:派生类对基类成员的访问控制之保护继承与私有继承(转)

继承与派⽣:派⽣类对基类成员的访问控制之保护继承与私有继

承(转)

鸡啄⽶在编程⼊门系列上⼀节中讲了,这⼀节接着讲剩下的两种继承⽅式:保护继承和私有继承。

⼀.保护继承

在保护继承⽅式中,基类的公有成员和保护成员被派⽣类继承后变成派⽣类的保护成员,⽽基类的私有成员在派⽣类中不能访问。因为基类的公有成员和保护成员在派⽣类中都成了保护成员,所以派⽣类的新增成员可以直接访问基类的公有成员和保护成员,⽽派⽣类的对象不能访问它们,上⼀讲鸡啄⽶说过,类的对象也是处于类外的,不能访问类的保护成员。对基类的私有成员,派⽣类的新增成员函数和派⽣类对象都不能访问。

通过上述保护继承的讲解,相信⼤家对类的有更加深刻的理解了。假设A类是基类,B类是从A类继承的派⽣类,A类中有保护成员,则对派⽣类B来说,A类中的保护成员和公有成员的访问权限是⼀样的。⽽对A类的对象的使⽤者来说,A类中的保护成员和私有成员都⼀样不能访问。可见类中的保护成员可以被派⽣类访问,但是不能被类的外部对象(包括该类的对象、⼀般函数、其他类等)访问。我们可以利⽤保护成员的这个特性,在软件开发中充分考虑数据隐藏和共享的结合,很好的实现代码的复⽤性和扩展性。

鸡啄⽶举个简单的例⼦讨论下保护成员的访问属性。

class Base

{

protected:

int x; // 基类的保护成员

};

int main()

{

Base base;

base.x = 0; // 编译报错

return0;

}

这段代码在编译的时候会报错,错误就出在通过对象base访问保护成员x时,就像上⾯讲的,对Base类的对象base的使⽤者来说,Base 类中的保护成员x和私有成员的访问特性是⼀样的,所以对象base不能访问x,这样跟使⽤私有成员⼀样通过保护成员实现了数据的隐藏。class Base

C++课件第十一章继承和派生类

C++课件第十一章继承和派生类
车可以继承自交通工具,汽车可 以继承车,跑车可以继承汽车。 每个派生类都添加了新的属性和 方法。
Fra Baidu bibliotek
设计模式
制作面包、蛋糕和饼干都是可以 用继承的方式进行设计,采用抽 象类+派生类,模板模式和工厂 模式等设计模式。
继承的应用之一:机器人 设计
可以从机械臂、电子、传感器等 多个方面进行继承和复用,提高 机器人的实用性和效率。
继承和派生类的维护和扩展
1
维护和扩展的方法
通过添加新的派生类和修改派生类来达到维护和扩展的目的。
2
代码的复用
可以通过模板方法、组合模式、适配器模式、装饰器模式、代理模式等方式,进一步优化和 提高代码的可维护性和扩展性。
3
C++中嵌套类和嵌套派生类的应用
可以通过嵌套类和嵌套派生类进一步实现对类的封装和抽象,提高代码的可读性和可扩展性。
C++课件第十一章继承和 派生类
掌握继承和派生类的基本概念和应用,对于理解和设计面向对象的程序设计 有重要意义。
类的层次结构
C++类可以形成层次结构
子类可以继承基类的数据成员和 成员函数。
类的继承关系就像家族关系
基类是父亲,派生类是儿子。一 个类可以有多个子类。
建立类的层次结构有助于 程序设计的模块化
子类从基类继承了部分接口和实 现。可以重用基类的代码,减少 代码冗余。

继承ppt课件

继承ppt课件
• 为解决这一问题,C++引入了protected成员,protected类型的成 员是一种区分血缘关系内外有别的成员,在派生类中可以访问 protected成员,但在外部或其他类中,protected成员和private 成员一样,无法被访问。
10.3 多基派生
• 派生类只有一个基类时,称为单基派生,在实际 运用中,我们经常需要派生类同时具有多个基类, 这种方法称为多基派生或多重继承,是双基继承 的示意,在实际应用中,还允许使用三基甚至是 更多基继承。
10.1.1 简单示例
• 通过例子来看什么是继承,如代码10-1。
• 代码10-1中,point类是二维点类,现在要构建一3 维 点 类 point3D , 则 point3D 类 可 以 从 point 类 继 承 而来,point类称为“基类”、point3D类称为“派 生类”。在point3D类内不用再对xPos和yPos进行 定义性声明,只要增加一个private成员zPos即可, 还可在point3D类内定义与point类某个成员函数同 名的函数以实现功能覆盖,如point3D中的disp函 数实现了point类中disp函数不同的功能。根据需 要可再point3D类增加其他一些成员函数和数据成 员,如calcSum函数。
10.2.1 public派生与private派生
• C++中,利用基类派生其子类(派生类)的基本格式为: • class 派生类名:派生方式 基类名 •{ • private: • 新增私有成员列表; • public: • 新增公开成员列表; • }; • 如果需要,派生类可以从多个基类继承,也就是多重继承,这将在后面介

新标准C++程序设计5. 继承和派生

新标准C++程序设计5. 继承和派生
信息科学技术学院《程序设计实习》 郭炜
继承和派生 (教材P215)
德国菲森新天鹅堡
继承和派生的概念
继承:在定义一个新的类B时,如果该类与某 个已有的类A相似(指的是B拥有A的全部特点), 那么就可以把A作为一个基类,而把B作为基 类的一个派生类(也称子类)。
2
继承和派生的概念
派生类是通过对基类进行修改和扩充得到 的。在派生类中,可以扩充新的成员变量 和成员函数。
int v3; };
13
派生类对象的内存空间
派生类对象的体积,等于基类对象的体积,再加上派 生类对象自己的成员变量的体积。在派生类对象中,包 含着基类对象,而且基类对象的存储位置位于派生类对 象新增的成员变量之前。
class CBase {
int v1,v2; }; class CDerived:public CBase {
private: int nDepartment;
public: bool IsThreeGood() { ...... }; //覆盖 bool CanBaoYan() { .... };
}; // 派生类的写法是:类名: public 基类名 11
class CGraduatedStudent:public CStudent { private: int nDepartment; char szMentorName[20]; public: int CountSalary() { ... };

继承和派生(例子)

继承和派生(例子)

例12.1先定义“点”类Point,

再由“点”类派生出“圆”类Circle。

#include

using namespace std;

#define PI 3.14159

class Point // 定义“点”类

{

int x, y;

public:

Point(int a=0, int b=0)

{x=a; y=b;}

void ShowPoint( )

{cout<<"Point:("<

int Getx( )

{return x; }

int Gety( )

{return y;}

void Setxy(int a, int b)

{x=a; y=b;}

};

class Circle: public Point// 定义“圆”类,公有继承{

int r;// “圆”的半径

public:

Circle(int x, int y, int ra) : Point(x, y)// B

{r = ra;}

void Setr(int ra)

{r = ra; }

double Area( ) //求圆的面积{return PI*r*r;}

void Move(int x_offset, int y_offset) //将圆心坐标平移{

int x1=Getx( ); //存取基类的私有成员

int y1=Gety( ); // D

x1 += x_offset; y1 += y_offset;

Setxy(x1, y1); // E

}

void ShowCircle( )

{

ShowPoint( ); // F

cout<<" Radius: "<

继承和派生习题与解析

继承和派生习题与解析
黑色设计一个虚基类base包含姓名和年龄私有数据成员以及相关的成员函数由它派生出领导类leader包含职务和部门私有数据成员以及相关的成员函数
继承和派生习题与解析
1 分析以下程序的执行结果
#include<iostream.h> class base { public:
base() {cout<<"constructing base class"<<endl;} ~base(){cout<<"destructing base class"<<endl; } }; class subs:public base { public: subs(){cout<<"constructing sub class"<<endl;} ~subs(){cout<<"destructing sub class"<<endl;} }; void main() { subs s; }
2 分析以下程序的执行结果: #include<iostream.h> class base { int n; public: base(int a) { cout<<"constructing base class"<<endl; n=a; cout<<"n="<<n<<endl; } ~base(){cout<<"destructing base class"<<endl;} };
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖现有的代码(界面)不需修改
❖能进行属性与方法的扩充:实现一些新的功能,但又不需从底层 开发。
❖能以规范的、标准的设计进行扩充
❖在类定义中包含其它类的对象成员(对象组合):可以重用其它 类定义的成员,但设计与使用没有统一的规范。
class BirthDate
//生日类
{ pu┆bli§c: 类的组合:在一个类中以另一个类的对象作为数据成员
stsrtirninggnaadmder;;
//新增加的数据成员
}; char sex;
};
§ 派生类的构成
从基类接收成员
❖基类全部的成员接收过来(不包括构造函数 和析构函数)
❖在设计时充分考虑到派生类的要求
调整从基类接收的成员
❖可以改变基类成员在派生类中的访问属性 ❖同名覆盖原则
在声明派生类时增加的成员
public
Student
//声明基类是Student
//基类公用成员
void dviospidlayg_e1t(_)value( ) //新增加的成员函数
{ { cin>>num>>name>>sex; }
cout<v<o″idnudmis:p″la<<yn(u)m<<endl; //企图引用基类的私有成员,错误
int num; 这是“对象组合”的限制
类s的trin“g n继am承e; ”机制能通过“剪裁”派生需要的类
char sex;
BirthDate birthday;
};
§ 继承与派生的概念
继承就是在一个已存在的类的基础上建立一 个新的类
已存在的类称为基类(base class)或父类 (father class)
ccoouutt<<{<<″″
name: ″<<name<<endl; sex: ″<<sex<<endl;
//企图引用基类的私有成员,错误 //企图引用基类的私有成员,错误
coucot<u<t<″<n″aamgee:: ″″<<<<angaem<<e<en<denl;dl;
coucot<u<t<″<s″eaxd: d″r<e<sss:ex″<<<<eandddlr;<<endl;
}}
pprriivvaattee::
//基类私有成员
iinnttnaugme;;
//新增加的数据成员
一个基类可以派生出多个派生类,每一个派 生类又可以作为基类再派生出新的派生类
继承的分类
❖单继承:一个派生类只从一个基类派生 ❖多继承:一个派生类从多个基类派生
单继承
多继承
大学在册人员实例
教职工(单继承)
在册人员 学生(单继承)
兼职教师(单继承)
教师(单继承) 工人(单继承) 行政人员(单继承) 研究生(单继承)
大多数工程都尽可能使用可以重用的部件
软件重用在以下层次中
❖代码
❖功能 ❖模块或类
难度增加
❖子系统
❖应用系统
C++提供的大量库函数是在功能级的重用
MFC、OLE、ActiveX是在类一级的重用
软件重用的含义 简单而言,就是以现成的程序模块为基础,实现新的应用系统
小型模块重用的示例 ❖各种库函数
❖在类中包含C另一+个+类的支对象持成员重用的机制 重用的关注点: --类的继承
// 例1:
c/l/a派ss生S类tud声en明t //声明基类
{class Student1: public Student //声明基类是Student
{public:
//基类公用成员
pvuobildicd: isplay( )
{void display_1( )
//新增加的成员函数
c{out<<″ num: ″<<num<<endl;
新建立的类称为派生类(derived class)或子 类(son class)
子类继承了父类 父类派生了子类 派生类是基类的具体化 基类则是派生类的抽象
现实世界的例子
交通工具
飞机
汽车

小汽车
卡车
旅行车
工具车
轿车
面包车
动物Biblioteka Baidu
猴子


狮子

猎豹
几 何形状

矩形
派生类继承了基类的所有数据成员和成员函 数,并可以对成员作必要的增加或调整
public、private(私有的)、protected
❖派生类所声明的对基类的继承方式
public、private(私有的)、protected
公有继承(public)
类 成
基类的public和protected成员的访问属性在 派生类中保持不变,但基类的private成员在
员 派生类不可访问。
的 派生类中的成员函数可以直接访问基类中
访 问 控
的public和protected成员,但不能访问基类 的private成员。 派生类的对象只能访问基类的public成员。

//例2:
//派生c类la声ss明Student //声明基类
class {
{Student1:
publicp:ublic:
行政人员兼教师 (多重继承)
研究生助教 (多重继承)
在职研究生 (多重继承)
§ 派生类的声明方式
一般形式
class 派生类名: [继承方式] 基类名 {
派生类新增加的成员 };
继承方式
❖ public(公有的、公用的) ❖ private(私有的) ❖ protected(受保护的) ❖ 默认为private(私有的)
第11章 继承与派生
信息学院信息技术教研室
整体概况
概况一
点击此处输入 相关文本内容
01
概况二
点击此处输入 相关文本内容
02
概况三
点击此处输入 相关文本内容
03
§ 面向对象程序设计4个主要特点
抽象 封装 继承:对现有的类重复利用 多态性:在继承的基础上,使程序设计更加
简单化
§ 关于软件重用(复用)
private: 子对象是“部件”
int int
ymeoanr;th组; 合产生的新类对象“包含”子对象,因此
int day; ❖新类对象具有子对象的属性和功能
}; class
Teacher//❖教新师类类对象能增加新属性与新功能
{ public: ❖新类对象不能“修改”子对象的功能

private:
§ 派生类成员的访问属性
在讨论访问属性时,要考虑以下几种情况:
❖基类的成员函数访问基类成员 ❖派生类的成员函数访问派生类自己增加的成员 ❖基类的成员函数访问派生类的成员 ❖派生类的成员函数访问基类的成员 ❖在派生类外访问派生类的成员 ❖在派生类外访问基类的成员
派生类成员的访问属性决定因素
❖基类成员所声明的访问属性
相关文档
最新文档