实验二 类和对象
实验课程名:面向对象程序设计(C++)
专业班级: 09计算机科学与技术(2)班 学号: 姓名: 实验时间: 实验地点: K4-102 指导教师:
一、实验目的和要求 (1) 掌握派生类的声明方法和派生类构造函数的定义方法。 (2) 掌握不同继承方式下,基类成员在派生类中的访问属性。 (3) 掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。 (4) 学习虚基类在解决二义性问题中的作用。 二、实验内容 (一)输入下列程序 #include using namespace std; class Base{ public: void setx(int i) {x=i;} int getx() {return x;} public: int x; }; class Derived:public Base{ public: void sety(int i) {y=i;} int gety() {return y;} void show() {cout<<\"Base::x=\"< #include using namespace std; class person {private:int no; string name; string ssex; int age; public:void input() {cout<<\"请输入编号和姓名:\"; cin>>no>>name; cout<<\"请输入性别和年龄:\"; cin>>ssex>>age; } void display() {cout<<\"编号:\"<>bh>>score;} void show() {display(); cout<<\"班号:\"<>zc>>bm;} void show( ) {display(); cout<<\"职称:\"< #include using namespace std; class MyArray{ public: MyArray(int leng); ~MyArray() ; void Input(); void Display(string); protected: int *alist; int length; }; MyArray::MyArray(int leng) {if(leng<=0) {cout<<\"error length\"; exit(1); } alist=new int [leng]; length=leng; if(alist==NULL) {cout<<\"assign failure\"; exit(1); } cout<<\"MyArray类对象已创建。\"<>*p; } int main() {MyArray a(5); a.Input(); a.Display(\"显示已输入的\"); return 0; } 程序运行结果: (2) 声明一个类SortArray继承类MyArray,在该类中定义一个函数,具有将输入的整数从小到大进行排序的功能。 程序代码 #include #include using namespace std; class MyArray{ public: MyArray(int leng); ~MyArray(); void Input(); void Display(string); protected: int*alist; int length; }; MyArray::MyArray(int leng) {if(leng<=0) {cout<<\"error length\"; exit(1); } alist=new int [leng]; length=leng; if(alist==NULL) {cout<<\"assign failure\"; exit(1); } cout<<\"MyArray类对象已创建。\"<>*p; } class SortArray : public MyArray { public: void Sort(); SortArray(int leng):MyArray(leng) {cout<<\"SortArray类对象已创建。\"< #include using namespace std; class MyArray{ public: MyArray(int leng); ~MyArray(); void Input(); void Display(string); protected: int*alist; int length; }; MyArray::MyArray(int leng) {if(leng<=0) {cout<<\"error length\"; exit(1); } alist=new int [leng]; length=leng; if(alist==NULL) {cout<<\"assign failure\"; exit(1); } cout<<\"MyArray类对象已创建。\"<>*p; } class ReArray : public MyArray { public: void reverse(); ReArray(int leng):MyArray(leng) {cout<<\"ReArray类对象已创建。\"< #include using namespace std; class MyArray{ public: MyArray(int leng); ~MyArray(); void Input(); void Display(string); protected: int*alist; int length; }; MyArray::MyArray(int leng) {if(leng<=0) {cout<<\"error length\"; exit(1); } alist=new int [leng]; length=leng; if(alist==NULL) {cout<<\"assign failure\"; exit(1); } cout<<\"MyArray类对象已创建。\"<>*p; } class AverArray : public MyArray { public: double Aver(); AverArray(int leng):MyArray(leng) {cout<<\"AverArray类对象已创建。\"<