面向对象编程实验课随笔(承继下的构造函数和析构函数)
生活随笔
收集整理的這篇文章主要介紹了
面向对象编程实验课随笔(承继下的构造函数和析构函数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、試驗內容
1.將示例代碼用電腦運行,并展示運行結果。
2.聲明一個SortArray繼承類MyArray,在類中定義一個函數,具有將輸入的整數從小到大進行排序的功能。
二、試驗步驟
1.運行示例代碼,并運行
#include<iostream> #include<string> 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);}length = leng;alist = new int[length];if (alist == NULL){cout << "assign failure";exit(1);}cout << "MyArray類對象已創建" << endl; } MyArray::~MyArray() {delete[]alist;cout << "MyArray類對象已撤銷" << endl; } void MyArray::Display(string str) {int i;int* p = alist;cout << str << length << "個整數";for (i = 0; i < length; i++, p++){cout << *p << " ";}cout << endl; } void MyArray::Input() {cout << "請從鍵盤輸入" << length << "個整數:";int i;int* p = alist;for (i = 0; i < length; i++, p++){cin >> *p;} } int main() {SortArray s(5);s.Input();s.Display("顯示已經輸入的");return 0; }運行結果如下:
2.聲明一個SortArray繼承類MyArray,在類中定義一個函數,具有將輸入的整數從小到大進行排序的功能。
代碼如下:
#include<iostream> #include<string> using namespace std; class MyArray { public:MyArray(int leng);~MyArray();void Input();void Display(string); protected:int* alist;int length; }; class SortArray :public MyArray { public:SortArray(int leng) :MyArray(leng){cout << "SortArray類已創建" << endl;}~SortArray(){cout << "SortArray類已撤銷" << endl;}void sort(){int i, j, temp;for (i = 0; i < length; i++){for (j = 0; j < length - i - 1; j++){if (alist[j] > alist[j + 1]){temp = alist[j];alist[j] = alist[j + 1];alist[j + 1] = temp;}}}} }; MyArray::MyArray(int leng) {if (leng <= 0){cout << "error length";exit(1);}length = leng;alist = new int[length];if (alist == NULL){cout << "assign failure";exit(1);}cout << "MyArray類對象已創建" << endl; } MyArray::~MyArray() {delete[]alist;cout << "MyArray類對象已撤銷" << endl; } void MyArray::Display(string str) {int i;int* p = alist;cout << str << length << "個整數";for (i = 0; i < length; i++, p++){cout << *p << " ";}cout << endl; } void MyArray::Input() {cout << "請從鍵盤輸入" << length << "個整數:";int i;int* p = alist;for (i = 0; i < length; i++, p++){cin >> *p;} } int main() {SortArray s(5);s.Input();s.Display("顯示已經輸入的");s.sort();s.Display("顯示已經排序的");return 0; }?添加的代碼為:
class SortArray :public MyArray { public:SortArray(int leng) :MyArray(leng){cout << "SortArray類已創建" << endl;}~SortArray(){cout << "SortArray類已撤銷" << endl;}void sort(){int i, j, temp;for (i = 0; i < length; i++){for (j = 0; j < length - i - 1; j++){if (alist[j] > alist[j + 1]){temp = alist[j];alist[j] = alist[j + 1];alist[j + 1] = temp;}}}} };首先在構造函數中聲明派生類繼承基類的成員函數,派生類中只有一個成員函數,就是排序函數,排序函數采用冒泡排序,將大的數向后交換,完成排序的功能。
運行結果如下:
?
總結
以上是生活随笔為你收集整理的面向对象编程实验课随笔(承继下的构造函数和析构函数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解锁相环的工作原理
- 下一篇: 基于matlab的禁止无功补偿,基于MA