基类中成员的访问限定符和派生类的继承方式

来源:互联网 发布:淘宝上怎么出售qq号码 编辑:程序博客网 时间:2024/06/02 03:45
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 作者:王飞* 完成日期:2013 年5月 31日* 版本号: v1.0* 输入描述:无* 问题描述:基类中成员的访问限定符和派生类的继承方式* 程序输出:如下*/#include <iostream>using namespace std;class StudentA              //声明学生类A{public:    StudentA(int n,string nam,char s);      //构造函数    void showA();                       //输出A的信息    ~StudentA( ) { }                    //析构函数释放A的空间protected:        int num;                            //受保护的成员派生类可以访问    string name;    char sex ;};class StudentB: public StudentA         //公用继承{public:    StudentB(int n,string nam,char s,int a,string ad);  //构造函数初始化    void showB( );    ~StudentB( ) { }private:    int age;    string addr;};StudentA::StudentA(int n,string nam,char s){    num=n;    name=nam;    sex=s;}void StudentA::showA(){    cout<<"num: "<<num<<endl;    cout<<"name: "<<name<<endl;    cout<<"sex: "<<sex<<endl<<endl;}StudentB::StudentB(int n,string nam,char s,int a,string ad):StudentA(n,nam,s){    age=a;                      //在B中初始化要调用A的构造函数    addr=ad;}void StudentB::showB( ){    cout<<"num: "<<num<<endl;    cout<<"name: "<<name<<endl;    cout<<"sex: "<<sex<<endl;    cout<<"age: "<<age<<endl;    cout<<"address: "<<addr<<endl<<endl;}int main( ){    //测试数据    StudentB stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai");    StudentB stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing");    StudentA stud3(20010,"He-xin",'m');    stud1.showB( );    stud2.showA( );    stud3.showA( );    return 0;}


 

输出结果:

 

 

心得体会:


对于继承,理解好各个继承关系:

派生类          在派生类中               在派生类外

 

公用              可以                             可以

保护              可以                             不可以

私有              可以                              不可以

不可访问     不可以                          不可以

 

 

原创粉丝点击