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

本文深入探讨了面向对象编程中的继承机制及其在类之间的应用,通过具体实例展示了公用继承下成员访问限定符和派生类继承方式的实现过程。文章详细解析了学生类A与学生类B之间的继承关系,以及如何在派生类中访问和初始化基类成员,为读者提供了深入理解面向对象编程的重要知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
* 程序的版权和版本声明部分
* 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;
}


 

输出结果:

 

 

心得体会:


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

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

 

公用              可以                             可以

保护              可以                             不可以

私有              可以                              不可以

不可访问     不可以                          不可以

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值