類與物件 實驗二

2021-10-06 11:53:48 字數 2410 閱讀 8757

【實驗目的】

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...