【實驗目的】
1、掌握類的建構函式和析構函式的概念和使用方法;
2、掌握物件陣列、物件指標的定義和使用方法;
3、掌握new和delete的使用方法;
【實驗內容】
1、 設計描述平面座標上的點cpoint類,該類滿足下述要求:
•具有x,y座標資訊;
•具有帶預設形參值的建構函式,引數分別用於初始化x和y座標資訊;
•具有獲取x、y資訊的getx和gety函式,具有設定x、y資訊的setx和sety函式;
2、 設計乙個矩形類crectangle,該類滿足下述要求:
•具有矩形的左下角和右上角兩個點的座標資訊,這兩個點的資料型別是cpoint;
•具有帶引數的建構函式crectangle(const cpoint &, const cpoint &),引數分別用於設定左下角和右上角兩個點的座標資訊;
•具有設定左下角和設定右上角的兩個點座標的功能setlpoint(const cpoint &)和setrpoint(const cpoint &);
•具有獲得周長(getperimeter)和獲得面積(getarea)的功能。
3、 在main函式中,完成以下工作:
•動態建立乙個crectangle類的物件a_rectagnle,其初始的左下角和右上角座標分別為(2,5)、(6,8);呼叫getperimeter和getarea獲得矩形周長和面積,並將周長和面積顯示在螢幕上;
•呼叫setlpoint設定a_rectagnle的左下角為(4,6),呼叫setrpoint設定a_rectagnle的右上角為(7,9);呼叫getperimeter和getarea獲得矩形周長和面積,並將周長和面積顯示在螢幕上;
•銷毀該動態建立的物件。
【實驗要求】
1、編寫實驗內容要求的程式、編譯並除錯通過;
2、實驗報告中記錄程式設計過程**現的錯誤與改正方法;
3、總結類的建構函式和析構函式的特點;
源**如下:
#include
using
namespace std;
class
cpoint
建構函式初始化方法一*/
cpoint
(float c=0,
float d=0)
//方法二
float
getx()
float
gety()
void
setx
(float m)
void
sety
(float n)
private
:float x,y;};
class
crectangle
void
setlpoint
(const cpoint &l)
// void
setrpoint
(const cpoint &r)
// float
getperimeter()
float
getarea()
private
: cpoint lbpoint,rapoint;};
intmain()
2.總結類的建構函式和析構函式的特點
答: 建構函式: (1)建構函式是成員函式,函式體可寫在類體內,也可寫在類體外。(2)建構函式是乙個特殊的函式,該函式的名字與類名相同,該函式不指定型別說明,它有隱含的返回值,該值由系統內部使用。該函式可以有乙個引數,也可以有多個引數。(3)建構函式可以過載,即可以定義多個引數個數不同的函式。(4)程式中不能直接呼叫建構函式,在建立物件時系統自動呼叫建構函式。(5)乙個類沒有定義任何建構函式,則編譯器自動生成乙個不帶引數的預設建構函式,其格式如下: 類名::預設建構函式名()
在程式中定義乙個物件而沒有指明初始化,則編譯器便按預設建構函式來初始化該物件,物件的所有資料成員都初始化為零或空。
析構函式:(1)析構函式是乙個特殊的成員函式,與類同名,並在前面加「~」字元,用來與建構函式加以區別。析構函式不指定資料型別,並且也沒有引數。(2)乙個類中只能定義乙個析構函式,析構函式不能過載。(3)析構函式可以被程式呼叫,也可以由系統自動呼叫。
兩種情況析構函式會被自動呼叫。一是如果乙個物件被定義在乙個函式體內,則當這個函式結束時,該物件的析構函式被自動呼叫;二是當乙個物件是使用new運算子被動建立的,在使用delete運算子釋放它時,delete將會自動呼叫析構函式。
(4)乙個類中沒有定義析構函式時,則編譯系統也生成乙個預設析構函式,其格式如下:
類名::~預設析構函式名(){}預設析構函式是乙個空函式
借鑑小部分有刪改。
3.心得體會
比較實驗一作業,這次難度明顯提公升。明確作業意圖寫出大概**框架之後,借鑑網路上已有此類似題目時仍然有部分**不能完全理解,感覺知識點還是沒有完全掌握,思路不大清晰。
實驗三 類與物件二
實驗內容4 vector.hpp include include using namespace std class vector int vector int vector int int n,int m 0 vector int vector int vector int vector int ...
C 物件導向實驗二 類與物件
類的建立和使用類來建立物件。類的資料成員的宣告。成員函式的宣告和定義。private,public訪問限定符的使用。使用提供的公有的成員函式給物件成員賦值。類 包含私有的資料成員 length,wide 和公有的成員函式 過載的建構函式oneclass,求和函式add,輸出顯示函式 display ...
實驗1 類與物件
宣告乙個cpu類,包含等級 rank 頻率 frequency 電壓 voltage 等屬性,有兩個公有成員函式run stop。其中,rank為列舉型別cpu rank,宣告為enum cpu rank p1 1,p2,p3,p4,p5,p6,p7 frequency為單位是mhz的整型數,vol...