寻花问柳专注做男人喜爱的网站,做网站教程 第一课,宁波专业网站推广制作服务,免费做效果图的网站类的私有继承方式
①基类公有成员和保护成员都作为私有成员被派生类继承#xff0c;派生类自身的函数可直接访问他们#xff0c;但是派生类对象则只能通过本类的公有函数间接地访问它们。
②基类的私有成员成为派生类中更加封闭的私有成员#xff0c;派生类内部成员函数也…类的私有继承方式
①基类公有成员和保护成员都作为私有成员被派生类继承派生类自身的函数可直接访问他们但是派生类对象则只能通过本类的公有函数间接地访问它们。
②基类的私有成员成为派生类中更加封闭的私有成员派生类内部成员函数也无法直接访问它们。派生类的函数只能通过调用基类的公有或保护成员函数访问它们。
③在派生类之外无法通过派生类对象直接访问从基类继承的任何成员。
接下来我们给出一段代码解析一下私有继承的原理 上图是基类的定义
char m_strName[10]、int m_nAge、int m_nSex均为基类的私有成员void Register(char *name,int age,char sex)为私有数据成员方法
pubic下是公有成员方法 上图我们Employee类私有继承于Person类
char m_strDept[20] 和 float m_fSalary 均是Employee类的私有成员
public体下是它的公有成员和构造函数 继承类函数体的编写
Person::Register调用基类的Register函数Register函数为基类的为私有数据成员方法即①基类公有成员和保护成员都作为私有成员被派生类继承派生类自身的函数可直接访问他们但是派生类对象则只能通过本类的公有函数间接地访问它们。
strcpy函数是复制字符串的,接受两个参数,一个是被复制字符串,另一个新字符串。
void Employee::ShowMe()编写函数体
char name[15]定义一个字符数组
GetName是基类的公有成员函数通过私有继承为派生类的私有成员函数但派生类自身的函数可直接访问他们。
GetSex和GetAge同上 主函数的编写
首先我们为Employee定义了一个对象emp
第一个emp.ShowMe()调用的是Employee类构造函数只有默认参数
第二个emp.ShowMe()调用的是Employee类Register函数传参后的内容
emp.GetEmployeeAge()为Employee类的公有成员我们私有继承下的对象③在派生类之外无法通过派生类对象直接访问从基类继承的任何成员。并不能直接获取基类的数据所以我们需要间接获取在这里GetEmployeeAge()就作为派生类的公有函数访问基类的公有函数。 上图是基类函数的函数体
保护继承与私有继承大致相同
基类成员在派生类中的访问属性
基类中的成员在公有派生类中的访问属性在保护派生类中的访问属性在私有继承类中的访问属性公有成员公有保护私有保护成员保护保护私有私有成员不可直接访问不可直接访问不可直接访问