C++语言基础 例程 派生类成员的访问属性
2015-05-09 22:40
615 查看
贺老师的教学链接 本课讲解
公用继承
私有继承
保护继承
公用继承
//演示:修改Student中的访问限定符,编译及运行,从而查看结果 //当Student中的3个数据成员改为private时,程序的两种改法: //(1)在Student1中的show1()方法中调用show(); //(2)在main()函数中调用stud1.show() #include <iostream> #include<string> using namespace std; class Student//声明基类Student { public: Student(int n,string nam,char s) //基类构造函数 { num=n; name=nam; sex=s; } void show() { cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl<<endl; } ~Student( ) { } //基类析构函数 protected: //保护部分 int num; string name; char sex ; }; class Student1: public Student //声明派生类Student1 { public: //派生类的公用部分 Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s) //派生类构造函数 { age=a; //在函数体中只对派生类新增的数据成员初始化 addr=ad; } void show1( ) { cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl<<endl; } ~Student1( ) { } //派生类析构函数 private: //派生类的私有部分 int age; string addr; }; int main( ) { Student1 stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai"); Student1 stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing"); Student stud3(20010,"He-xin",'m'); stud1.show1( ); //输出第一个学生的数据 stud2.show( ); //输出第二个学生的数据 stud3.show( ); //输出第二个学生的数据 return 0; }
私有继承
//演示:修改Student中的访问限定符,编译及运行,从而查看结果 //当Student中的3个数据成员改为private时,程序的改法: //(1)在Student1中的show1()方法中调用show(); //而不能: //(2)在main()函数中调用stud1.show() #include <iostream> #include<string> using namespace std; class Student//声明基类Student { public: Student(int n,string nam,char s) //基类构造函数 { num=n; name=nam; sex=s; } void show() { cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl<<endl; } ~Student( ) { } //基类析构函数 protected: //保护部分 int num; string name; char sex ; }; class Student1: private Student //声明派生类Student1 { public: //派生类的公用部分 Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s) //派生类构造函数 { age=a; //在函数体中只对派生类新增的数据成员初始化 addr=ad; } void show1( ) { show(); cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl<<endl; } ~Student1( ) { } //派生类析构函数 private: //派生类的私有部分 int age; string addr; }; int main( ) { Student1 stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai"); Student1 stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing"); Student stud3(20010,"He-xin",'m'); stud1.show1( ); //输出第一个学生的数据 stud2.show( ); //输出第二个学生的数据 stud3.show( ); //输出第二个学生的数据 return 0; }
保护继承
//演示:修改Student中的访问限定符,编译及运行,从而查看结果 #include <iostream> #include<string> using namespace std; class Student//声明基类Student { public: Student(int n,string nam,char s) //基类构造函数 { num=n; name=nam; sex=s; } void show() { cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl<<endl; } ~Student( ) { } //基类析构函数 protected: //保护部分 int num; string name; char sex ; }; class Student1: protected Student //声明派生类Student1 { public: //派生类的公用部分 Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s) //派生类构造函数 { age=a; //在函数体中只对派生类新增的数据成员初始化 addr=ad; } void show1( ) { cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl<<endl; } ~Student1( ) { } //派生类析构函数 private: //派生类的私有部分 int age; string addr; }; int main( ) { Student1 stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai"); Student1 stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing"); Student stud3(20010,"He-xin",'m'); stud1.show1( ); //输出第一个学生的数据 stud2.show( ); //输出第二个学生的数据 stud3.show( ); //输出第二个学生的数据 return 0; }
相关文章推荐
- C++基础(八)继承与派生——派生类成员的访问属性
- C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题
- 解析C++中派生的概念以及派生类成员的访问属性
- C++语言基础 例程 派生类的声明与构成
- C++派生类成员的访问属性
- C++语言基础 例程 派生类的构造函数和析构函数
- C++语言基础 例程 类的成员函数
- C++:调整基类成员在派生类中的访问属性的其他方法(同名成员和访问声明)
- C++语言基础 例程 对象成员的引用
- C++语言基础 例程 基类与派生类的转换
- C++中派生类成员的访问属性
- C++语言基础 例程 静态成员
- C++语言基础 例程 类声明和成员函数定义的分离
- 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
- C++语言基础 例程 函数重载
- C++基类和派生类私有、保护、公有成员访问控制以及动态绑定、三种继承
- 第十二周实验报告(任务一)【派生类成员的访问属性的原则】
- C++语言基础 例程 不同类型数据间的转换
- C++语言基础 例程 标准输出流
- C++语言基础 例程 对象的动态建立和释放