
本科实验报告
课程名称: 面向对象程序设计
实验项目: 继承与派生
实验地点: 逸夫楼302
专业班级: 学号:
学生姓名:
指导教师: 王丽娟
2013年 1月 9日
1、实验目的和要求
(1)掌握类的继承和派生过程;
(2)掌握派生类的定义与使用;
(3)掌握派生类的构造函数与析构函数的应用及调用顺序;
(4)学习使用VISUAL C++调试类的继承关系的应用。
二、实验内容和原理
(1)声明一个基类BaseClass,有整数类型成员变量Number,构造基派生类DerivedClass,实现其构造函数和析构函数,完善类的功能与结构。
(2)声明一个基类SHAPE,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square;完善类的功能与结构。
三、主要仪器设备
HP 60b;Visual Studio 2008软件环境。
4、操作方法与实验步骤
(1)
#include "stdafx.h"
#include "iostream"
using namespace std;
class basicclass
{
private:
int number;
public:
basicclass()
{
cout<<"class basicclass is constructor..."< ~basicclass() { cout<<"class basicclass is destructor..."< }; class derivedclass:public basicclass { public: derivedclass() { cout<<"derivedclass is constructor.... "< ~derivedclass() { cout<<"derivedclass is destructor.... "< }; void main() { derivedclass m; return 0; } (2) #include "stdafx.h" #include using namespace std; const double PI=3.1415926; class SHAPE { public: double GetArea(){ cout<<"shape"< }; class Rectangle:public SHAPE { public: double x,y; Rectangle(double x,double y) { this->x=x; this->y=y; } double GetArea(){ cout<<"Rectangle Area: "< } }; class Circle : public SHAPE { public: double x; Circle(double x) { this->x=x; } double GetArea() { cout<<"Circle Area: "< } }; class Square : public Rectangle { public: Square(double x,double y):Rectangle(x,y) { } void GetSquare() { Rectangle::GetArea(); } }; int main() { Rectangle *r=new Rectangle(5,7); r->GetArea(); Circle *c=new Circle(3); c->GetArea(); Square *s= new Square(6,6); s->GetSquare(); delete r; delete c; delete s; } 5、实验数据记录和处理 (1) (2) 六、实验结果与分析 七、讨论、心得 掌握类的继承和派生过程、掌握派生类的定义与使用、掌握派生类的构造函数与析构函数的应用及调用顺序在今后的学习实践中十分重要,继承与派生是面向对象设计十分重要的特点。 随着课程学习的深入,我感觉到了利用类和对象、继承、封装等一系列知识可以把我们程序中很多繁杂、重复的部分省略掉,还可以解决一些利用面向过程的设计思想无法解决的问题,我自己也试着编写一些小的C++程序,当然在这个过程中遇到了很多困难,其中调试带来的困难让我无法忘记,在调试程序的同时,我也总结出来了一些调试的小技巧,让我在C++语言课程设计中也受用匪浅。
