DLUT C 上機作業(實驗三)

2021-07-29 06:13:04 字數 3707 閱讀 9253

實驗3 this指標、常量和靜態成員和友元函式的使用

1、 實驗目的和要求:

(1) 掌握顯式使用this指標的方法

(2) 掌握靜態資料成員的意義及使用方法

(3) 掌握常量資料成員和常量成員函式的意義和使用方法

(4) 掌握友元函式和友元類的使用方法

2、 實驗內容:

//**較low,應付作業是夠了,,,,,被嘲笑概不負責(笑哭)

(1)有如下類的定義。類成員函式copy用於實現兩個物件的相互拷貝,請完成該函式的實現。(有兩種方法即不用this 指標和用this指標)

#include

#include

#include

#include

#include

using

namespace

std;

#define n 100000000

class myclass

void copy(myclass & my);

void print()

private:

int x, y;

};void main()

void myclass::copy(myclass &my)

(2)設計乙個類,實現兩個複數的四則運算。實現加減乘除功能的函式用友元函式實現。

#include

#include

#include

#include

#include

using

namespace

std;

#define n 100000000

void judge(double b)

else

if (b>0)

}class fushu

friend

class operation;

};class operation;

void operation::add_show(fushu s1, fushu s2)

void operation::sub_show(fushu s1, fushu s2)

void operation::mul_show(fushu s1, fushu s2)

void operation::div_show(fushu s1, fushu s2)

int main()

(3)分析下面程式,給出橫線部分的語句,寫出程式的輸出結果並分析m_count的功能。

#include 

using

namespace

std;

class a

int a::m_counter=0; //將m_counter初始化為0;

a::a()

a::~a()

void a::display()

int main()

//結果:there are : 3objects of class a.

// there are : 3objects of class a.

(4)商店經銷一種貨物,貨物成箱購進,成箱賣出,購進和賣出時以重量為單位,各箱的重量不一樣,單價不一樣,因此商店需要記錄下目前庫存的貨物的總重量和總價值。編寫乙個程式,通過定義類carlo來模擬商店貨物購進和賣出的情況。

(本題目主要練習靜態資料成員的使用,定義私有變數存每件貨物的**和重量,用靜態資料成員存貨物的總重量和總價錢,定義建構函式和析構函式,當定義新的物件完成初始化的功能和刪除物件時,從總重量和總價錢中減去物件的重量和**)

#include

#include

#include

#include

#include

using

namespace

std;

class carlo

~carlo()

/* void buy(carlo &s)

void sell(carlo &s)*/

static

void show()

};double carlo::sprice = 0;

double carlo::sweight = 0;

int main()

(5) 靜態成員練習

1) 編寫乙個類node,宣告乙個資料成員member和已經靜態成員count,另建構函式初始化資料成員,並把靜態資料成員加1,另析構函式把靜態資料成員減1。

2) 在1)的基礎上編寫應用程式,建立3個物件,然後顯示他們的資料成員和靜態成員,再析構每個物件,並顯示他們對靜態資料成員的影響。

3) 修改2),讓靜態成員函式訪問靜態資料成員,並讓靜態資料成員是私有的。

#include

#include

#include

#include

#include

using

namespace

std;

class node

~node()

void show()

static

void show_count()

};int node::count = 0;

int main()

(6)兩個類分別為整型數集合類和實型數集合數類。將缺少的內容補齊。並完成要求的其它內容。

如: class intset

void print( )

}; class floatset

void print( )

}; (1) 在intset中再增加乙個成員函式,將物件的整型資料拷貝的到floatset的物件中此成員函式的原型為:

void settofloat(floatset &set); //形參為拷貝的目標物件

(2)定義乙個友元函式來實現上述的功能。

請分別完成兩個程式。

(7) 分析以下程式的功能,把程式用三種方法(公有資料成員、友元、用成員函式訪問私有資料成員)補充完整,實現對物件animal的成員

#include

#include

using

namespace

std;

class node;

class

list

else}}

};int

list::tails()

list::list()

void

list::pop()

else

}int

list::front()

}bool

list::empty()

int main()

int sum = 0;

while (!l.empty())

cout

<< sum;

}

(9) 設計合適的類結構,完成多項式加、減、乘運算。

3、思考題:

結合程式設計實踐回答下列的問題。

(1) 什麼是this指標,它的主要作用是什麼?

(2) 總結靜態成員的特點。

(3) 分別介紹const修飾資料成員、函式成員、物件的作用。

(4) 用合適的資料結構(給出類宣告)描述下面的問題:

乙個老師可以有多個助教,每個助教可以輔導多名學生。

C 上機實驗三

實驗1 定義乙個 timepeiod 類 包含 hour minute second 實現時間的在 時分秒上的加法。1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 na...

C 第三次上機實驗作業

一 問題及 檔名稱 4.111.cpp 作 者 鄒鴻運 完成日期 2016年 4月 8日 版 本 號 codeblocks 對任務及求解方法的描述部分 設計含有靜態資料成員和成員函式的time類。輸入描述 無 問題描述 專案1 靜態成員應用 程式輸出 使用類和物件,靜態成員以及函式的呼叫。問題分析 ...

C 上機實驗(三) 模板

實驗目的和要求 1 理解模板的作用。2 掌握函式模板的宣告方法和模板函式的生成方法。3 掌握類模板的宣告方法和模板類的生成方法。實驗內容和要求 3.1 編寫一求兩個數的最大值的函式max,要求用模板實現對任意資料型別資料都可應用該函式求取結果,在main 函式中分別用整型 實型 字元型資料進行測試。...