欢迎来到天天文库
浏览记录
ID:38540893
大小:380.51 KB
页数:40页
时间:2019-06-14
《C++课件第十一章继承和派生类》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章继承和派生类类是一种抽象数据类型,是对具有共同属性和行为的对象(事物)的抽象描述。房屋平房楼房办公楼居民楼顶层的抽象事物具有处于底层的抽象事物的共同特征,而处于底层的抽象事物除了包含顶层抽象事物的特征外,还具有自身的我特征。一个类继承另一个类时,这个类被称为继承类、派生类或子类,另一个类被称为被继承类、基类或父类。继承类包含了被继承类中的所有成员,且有自己的成员。继承:从一个或多个先前定义过的类(称为基类)中接受全部或一部分数据(属性)或函数(行为或操作),并且补充定义新的数据或函数,因而形成一个新的低层的类(称为派生类)。而该派生类还可用作更低层派生类的基类。clas
2、sdemo{protected:intj;public:demo(){j=0}voidadd(inti){j+=i;}voiddisplay(){cout<3、1050定义派生类的基本格式:class派生类名:继承权限基类名继承权限:public,protected,private影响的是被继承的原基类成员的访问权限class定义的默认为private,struct定义的默认为public继承权限为public时,称该派生为公有派生。基类中的所有public成员在派生类中仍是public成员,所有protected成员在派生类中仍是protected成员。继承权限为private时,称该派生为私有派生。基类中的public成员和protected成员在派生类中均变成private成员。继承权限为protected时,称该派生为保护派生4、。基类中的public成员和protected成员在派生类中均变成protected成员。成员被其它函数访问被继承public可以可以protected不可以可以private不可以不可以无论哪一种继承权限,其基类的private成员均不能为派生类所继承。但可通过被同时继承下来的原基类的某些函数间接访问它们。private:aa1protected:aa2public:aa3AClassB:publicA{private:bb1protected:bb2public:bb3}private:bb1protected:aa2bb2public:aa3bb3B公有派生privat5、e:aa1protected:aa2public:aa3AClassB:protectedA{private:bb1protected:bb2public:bb3}private:bb1protected:aa2bb2aa3public:bb3B保护派生private:aa1protected:aa2public:aa3AClassB:A{private:bb1protected:bb2public:bb3}private:bb1aa2aa3protected:bb2public:bb3B私有派生2派生类的使用#includeclassemployee{6、private:char*name;shortage;floatsalary;public:employee(){name=0;age=0;salary=0.0;}employee(char*name1,shortage1,floatsalary1){name=newchar[strlen(name1)+1];strcpy(name,name1);age=age1;salary=salary1;}voidprint()const//const成员函数:不能改变类中成员数据的值,也不能调用类中非const成员函数{cout<<“name:”<7、<
3、1050定义派生类的基本格式:class派生类名:继承权限基类名继承权限:public,protected,private影响的是被继承的原基类成员的访问权限class定义的默认为private,struct定义的默认为public继承权限为public时,称该派生为公有派生。基类中的所有public成员在派生类中仍是public成员,所有protected成员在派生类中仍是protected成员。继承权限为private时,称该派生为私有派生。基类中的public成员和protected成员在派生类中均变成private成员。继承权限为protected时,称该派生为保护派生
4、。基类中的public成员和protected成员在派生类中均变成protected成员。成员被其它函数访问被继承public可以可以protected不可以可以private不可以不可以无论哪一种继承权限,其基类的private成员均不能为派生类所继承。但可通过被同时继承下来的原基类的某些函数间接访问它们。private:aa1protected:aa2public:aa3AClassB:publicA{private:bb1protected:bb2public:bb3}private:bb1protected:aa2bb2public:aa3bb3B公有派生privat
5、e:aa1protected:aa2public:aa3AClassB:protectedA{private:bb1protected:bb2public:bb3}private:bb1protected:aa2bb2aa3public:bb3B保护派生private:aa1protected:aa2public:aa3AClassB:A{private:bb1protected:bb2public:bb3}private:bb1aa2aa3protected:bb2public:bb3B私有派生2派生类的使用#includeclassemployee{
6、private:char*name;shortage;floatsalary;public:employee(){name=0;age=0;salary=0.0;}employee(char*name1,shortage1,floatsalary1){name=newchar[strlen(name1)+1];strcpy(name,name1);age=age1;salary=salary1;}voidprint()const//const成员函数:不能改变类中成员数据的值,也不能调用类中非const成员函数{cout<<“name:”<7、<
7、<
此文档下载收益归作者所有