實驗4 靜態成員與友元

2021-08-20 13:13:54 字數 1201 閱讀 8685

1.除錯下列程式,寫出輸出結果,並分析輸出結果。

解釋:建構函式進行賦值,所以a分別等於6和8,靜態成員函式b第一次賦值時,b=100-6=94,第二次賦值b=94-8=86。

2.分析並除錯程式,完成下列問題。

#include

#include

using namespace std;

class my

my(double i,double j)

my(my&m)

friend double dist(my&a,my&b);

private:

double x,y;

};double dist(my&a,my&b)

int main()

{my m1,m2(15),m3(13,14);

my m4(m3);

cout<

(1).指出所有的建構函式,他們在本程式中起什麼作用。

答:程式的第7,8,9行為建構函式,第7行的作用是設定物件的預設值,第8行的作用是對物件進行賦初始值,第9行的作用是對已知物件的值進行拷貝到對應物件上。

(2).指出設定預設引數的建構函式。

答:第7行。

(3).指出友元函式。將友元函式放到私有部分,觀擦結果是否有變化。

答:第9行為友元函式,

結果沒有變化。

(4) 寫出輸出結果,並分析輸出結果。

分析:主函式建立4個物件,進行建構函式賦值後,分別對應4個點的座標,而友元函式執行的是計算這幾個點之間的距離,所以結果便如上圖所示。

靜態成員與友元

靜態成員與友元 1 實驗目的 學習友元函式的定義和原理。學習靜態資料成員和靜態成員函式的使用。學習靜態成員代替全域性變數實現物件間的共享。2 實驗內容 1 有如下類的定義。類成員函式copy用於實現兩個物件的相互拷貝,請完成該函式的實現。有兩種方法即用成員函式和友元函式實現 include incl...

靜態成員與友元函式

1 靜態成員 由來 使用全域性物件實現資料共享,由於其處處可見,不夠安全,故可使用靜態成員實現類的多個物件之間的資料共享。包括 靜態資料成員 靜態成員函式 特點 靜態資料成員屬於類,而不屬於某個物件獨有,類的所有物件共享靜態資料成員 靜態資料成員使用關鍵字static,在類體中宣告,在類體外定義,以...

C 友元與靜態成員

c 中,類外的成員不能訪問類內的私有和保護型別成員。而友元函式可以不受訪問限制訪問類的任何成員。友元函式雖然可以在類內進行宣告,但是友元函式不是成員函式,因此沒有this指標。舉例說明 class clock clock clock int h,int m,int s void show clock...