当前位置: 首页 > news >正文

中国建设教育协会网站查江油建设局网站

中国建设教育协会网站查,江油建设局网站,本校网站建设,深圳市住建局官网平台一、实验目的 1. 理解不同继承属性对派生类访问基类成员的区别 2. 掌握单继承程序编写 二、实验任务 1、调试下列程序,并在对程序进行修改后再调试,指出调试中的出错原因(该题中A为基类,B为派生类,B以public方式继承A) 重点:理解不同继承方式数据的访问权限,派生类…

一、实验目的

1. 理解不同继承属性对派生类访问基类成员的区别

2. 掌握单继承程序编写

二、实验任务

1、调试下列程序,并在对程序进行修改后再调试,指出调试中的出错原因(该题中A为基类,B为派生类,Bpublic方式继承A

重点:理解不同继承方式数据的访问权限,派生类对象的使用。

#include<iostream>

using namespace std;

class A//基类

{

private:

    int a;

public:

    void seta(int i)

    {

        a=i;

    }

    int geta(){return a;}

};

class B:public A //派生类B公有继承基类A

{

private:

    int b;

public:

    void setb(int i){b=i;}

    int getb(){return b;}

    void show(){cout<<"A::a="<<a<<endl;}//思考1:派生类B中的函数是否可以直接访问从基类继承过来的私有数据成员?

不可以直接访问,因为无论用何种方式继承,从基类继承过来的私有数据成员都是不可访问的,只有基类本身可以访问其私有成员,但是可以通过在基类中提供访问函数来进行访问。

};

int main()

{

    B bb;//思考2:对象bb的数据成员有几个?初始化值是什么?

bb中有2个数据成员,一个是从基类继承下来的私有数据成员,一个是派生类B自己定义的私有数据成员。初始化值不确定,因为没有提供构造函数进行初始化。

    bb.seta(6);

    bb.setb(3);

    bb.show();

    cout<<"A::a="<<bb.a<<endl;//思考3:派生类对象是否可以访问基类私有数据成员?如果不可以,如何修改?

不可以。可以通过在基类中提供访问函数来进行访问,即通过基类公有成员函数进行间接访问。

    cout<<"B::b="<<bb.b<<endl;//思考4:类外对象是否可以访问私有数据成员?如果不可以,如何修改?

类外对象不可以访问私有数据成员,可以通过基类公有成员函数进行间接访问。

    cout<<"A::a="<<bb.geta()<<endl;

    cout<<"B::b="<<bb.getb()<<endl;

    return 0;

}

实验思考与结果分析:

(1)不可以直接访问,因为无论用何种方式继承,从基类继承过来的私有数据成员都是不可访问的,只有基类本身可以访问其私有成员,但是可以通过在基类中提供访问函数来进行访问。

(2)bb中有2个数据成员,一个是从基类继承下来的私有数据成员,一个是派生类B自己定义的私有数据成员。初始化值不确定,因为没有提供构造函数进行初始化。

(3)不可以。可以通过在基类中提供访问函数来进行访问,即通过基类公有成员函数进行间接访问。

(4)类外对象不可以访问私有数据成员,可以通过基类公有成员函数进行间接访问。

修改后的程序代码:

7

运行结果:

2、调试下列程序,并在对程序进行修改后再调试,指出调试中的出错原因(该题中A为基类,B为派生类,Bprivate方式继承A

#include<iostream>

using namespace std;

class A //基类

{

private:

    int a;

public:

    void seta(int i)

    {

        a=i;

    }

    int geta(){return a;}

};

class B:private//派生类B私有继承基类A

{

private:

    int b;

public:

    void setb(int i){b=i;}

    int getb(){return b;}

void show_0(){cout<<"A::a="<<a<<endl;}//思考1:派生类B中的函数是否可以直接访问从基类私有继承过来的私有数据成员?

派生类B中的函数不能直接访问从基类私有继承过来的私有数据成员,因为这些成员在派生类中是不可见的。

    void show(){cout<<"A::a="<<geta()<<endl;}//思考2:派生类B中的函数是否可以直接访问从基类私有继承过来的成员函数?

};

派生类B中的函数不能直接访问从基类私有继承过来的成员函数,因为这些函数在派生类中是不可见的。

int main()

{

    B bb;//思考3:对象bb的数据成员有几个?初始化值是什么?

对象bb的数据成员有两个,分别是ba,但是a是以private方式继承到派生类B中的,因此在派生类

http://www.yayakq.cn/news/409883/

相关文章:

  • 怎样使自己做的网站上线照片模板图片
  • 做一个高端网站org后缀做网站行
  • 网站上的广告是怎么做的windows优化
  • 章丘建设网站给客户做网站 赚钱吗
  • 专门做各种产品测评的网站合肥网站推广公司
  • 中国建设银采购发文网站类似wordpress的软件
  • 钦州浦北网站建设昆明学网站建设
  • 枣强网站建设价格给公司做兼职维护网站多少钱
  • 网站服务器ip查询制作网页小图片
  • 东莞网站开发培训哪里有com域名续费多少钱
  • 移动网站开发内容wordpress如何网站顶部右侧广告
  • 查询网站旗下域名asp网站水印支除
  • 代销网站源码网站推广技巧有哪些
  • 网站备案为什么这么慢建设部网站已经公布黑名单
  • win7局域网网站开发开发大型网站的流程
  • 现在建设网站落后了中国互联网公司排名2023
  • 专业的外贸网站建设公司价格seo网站关键词优化软件
  • 网站公司好做吗苏州华亭建设工程有限公司网站
  • 天元建设集团有限公司 李增启江东怎样优化seo
  • 网站换域名后需要多长时间才能收录恢复正常wordpress不在新窗口打
  • 黄石本土做网站的公司武进网站建设效果
  • 哪里可以找到制作网站的公司网页设计ppt课件
  • 郑州网站开发便宜网页设计图片的代码
  • 排版设计模板网站网站建设一秒互联
  • 搭建公司内部网站上市设计公司网站
  • 扬中网站建设价位越南做网站
  • 郑州网站建设公建设网站企业网上银行登录官方
  • 夏天做哪个网站能致富北京设计制作网站制作
  • 四川建设人才网证书查询海外seo
  • 提供坪山网站建设公众号怎么制作横屏长图文