c++继承与派生实验报告

第四次试验报告

班级:计算机1204

姓名:杨天野 学号:20123914 题目一(1)定义一个基类Animal ,有私有整型成员变量age ,构造其派生类dog ,在其成员函数SetAge (int n)中直接给age 赋值,看看会有什么问题,把age 改为公有成员变量,还回有问题吗?编程试之。

源程序:

#include

using namespace std;

class Animal

{

private:

int age;

};

class dog:public Animal

{

public:

SetAge(int n);

};

dog::SetAge (int n)

{

age = n;

}

int main()

{

dog d1;

d1.SetAge (90);

return 0;

}

截屏:

错误:‘age ’ : cannot access private member declared in class ‘Animal ’

改为公有变量时:

源程序:

#include

using namespace std;

class Animal

{

public:

};

class dog:public Animal

{

public:

}; SetAge(int n); int age;

dog::SetAge (int n)

{

}

int main()

{

}

截图:

dog d1; d1.SetAge (90); return 0; age = n;

题目二:

(2)定义一个基类BaseClass, 有整型变量Number ,构造其派生类DerivedClass ,观察构造函数和析构函数的执行情况。

源程序:

#include

using namespace std;

class baseclass

{public:

baseclass()

{cout

~baseclass()

{cout

private:

};

class DerivedClass:public baseclass

{public:

DerivedClass()

{cout

~DerivedClass()

{ cout

}};

int main()

{DerivedClass n;

return 0;

}

截图: int Number;

题目三:

(3)定义一个车(vehicle )基类,具有Maxspeed 、Weight 等成员,Run 、Stop 等成员函数,由此派生出自行车(bicycle )类、汽车(motorcar )类。自行车(bicycle )类有高度(Height )等属性,汽车(motorcar )类有座位数(SeatNun )等属性。从bicycle 和motorcar 派生出摩托车(motorbicycle )类,在继承过程中,注意把vehicle 设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问题?编程试之。

(4)编写程序定义一个车(vehicle )基类,由此派生出自行车(bicycle )类、汽车(motorcar )类,注意把vehicle 派生为虚基类。再从bicycle 和motorcar 派生出摩托车(motorcycle )类,在main()函数中测试这个类。程序名:lab7_3.cpp.

源程序:

#include

using namespace std;

class vehicle

{

private:

int a;

};

class bicycle:virtual public vehicle

{};

class motorcar:virtual public vehicle

{};

class motorcycle:public bicycle,public motorcar

{};

int main()

{

} motorcycle m; cout

编译成功后,把vehicle 设置为非虚基类,再编译一次,此时系统会报错,无法编译成功。这是因为若不把vehicle 设置为虚基类,会出现二义性错误,该程序不能成功编译。

#include

using namespace std;

class vehicle

{

private:

};

class bicycle: public vehicle

{

};

class motorcar: public vehicle

{

};

class motorcycle:public bicycle,public motorcar

{

}; int a;

int main()

{

}

并没有出现无法编译的情况,只是出现了一个警告!

motorcycle m; cout

实验感悟:

在这次实践中,是我更加深刻的了解了继承与派生的一些基本做法,学习到了课堂上学不到的东西,亲身实践其中,并乐在其中,为我又一次学习并掌握了新的知识而高兴。在这里,我要特别感谢那些在这次实践中给我帮助的老师和同学,谢谢你们了!!


相关文章

  • 课程设计报告书
  • 1需求分析 1.1功能需求分析 随着科学技术的不断提高,计算机科学日渐成熟,传统的图书管理方式必然被计算机为基础的信息管理系统所取代.因为作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点:检索迅速.查找方 ...

  • 小学期c++实验报告
  • 山西大学管理学院 本科生课程设计论文 (2010 ---- 2011 学年 第 1 学期) 学 院:专 业 名 称:课 程 名 称: 面向对象程序设计 论 文 题 目: <模拟网上购书的结账功能> 授课 教师(职称):学 生 姓 ...

  • 面向对象基本特性的C语言实现
  • 第23卷第6期 2.02年11月微计算机应用MICROCOMPUTERAPI'LICATIONSV01.23,N..6NoV・,2002 l 面向对象基本特性的C语言实现 张泰乐肖孙圣倪宏丌5)^ 100080)(中国科学院研究生院,中国科 ...

  • 继承和派生类
  • 继承的概念 继承是面向对象程序设计中最重要的机制,它支持层次分类的观点.继承使得程序员可以在一个较一般的类的基础上很快地建立一个新类,而不必从零开始设计每个类,在现实世界中,许多实体或概念不是孤立的,它们具有共同的特征,但也有细微的差别,人 ...

  • 程序员_编程常用到的英语单词
  • Examine 检查.调查.考试 Detail 详情.详述 Expansion 扩大,扩张,扩展 Interpretation 解释.说明 Interval 时间间隔 Lap 膝盖,折叠 Material 材料.原料 Emphasize 强 ...

  • c++程序实习报告
  • 针对我们这学期学的c++,假期进行了五天的实习.第一天听老师讲实习内容和提示的时候觉得思路挺明确的一个程序,哪有传说中的那么难.下午和同学讨论的时候觉得很有目的,只要按部就班的完成各步操作就可以了,有难度的也只是第二步.这一步要进行判断,这 ...

  • C++经典题目雇员问题
  • 本节,我们以一个小型公司的人员信息管理为例,说明类的派生过程及虚函数和虚基类的应用.1. 问题的提出 某小型公司,主要有四类人员:经理.兼职技术人员.销售经理和兼职推销员.现在,需要存储这些人员的姓名.编号.级别.当月薪水.计算月薪总额并显 ...

  • Java编程思想读书笔记
  • 这是一份试图提纲挈领的读书笔记,《java编程思想》这本八百多页的书娓娓道来地包含了太多细节,这对读者是非常贴心的,我也强烈建议细细读这本书,如果你希望在短时间内学会java这种语言,那么这本书不是最好的选择,你可以看看谭浩强系列。我把看这 ...

  • 学习C 需要了解的十八个基础知识
  • 学习C++需要了解的十八个基础知识 一.#include"filename.h"和#include的区别 #include"filename.h"是指编译器将从当前工作目录上开始查找此文件 #incl ...

  • Windows平台下C 插件系统实现的几个关键技术问题及其解决思路
  • Windows平台下C++插件系统实现的几个关键技术问题及其解决思路 windows平台c++设计模式框架工具 作者:朱金灿 来源:http://blog.csdn.net/clever101/ 根据我的实践,在Windows平台下设计并实 ...

© 2024 范文参考网 | 联系我们 webmaster# 12000.net.cn