實驗3 this指標、常量和靜態成員和友元函式的使用
1、 實驗目的和要求:
(1) 掌握顯式使用this指標的方法
(2) 掌握靜態資料成員的意義及使用方法
(3) 掌握常量資料成員和常量成員函式的意義和使用方法
(4) 掌握友元函式和友元類的使用方法
2、 實驗內容:
//**較low,應付作業是夠了,,,,,被嘲笑概不負責(笑哭)
(1)有如下類的定義。類成員函式copy用於實現兩個物件的相互拷貝,請完成該函式的實現。(有兩種方法即不用this 指標和用this指標)
(2)設計乙個類,實現兩個複數的四則運算。實現加減乘除功能的函式用友元函式實現。#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)
(3)分析下面程式,給出橫線部分的語句,寫出程式的輸出結果並分析m_count的功能。#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()
//結果:there are : 3objects of class a.#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.
(4)商店經銷一種貨物,貨物成箱購進,成箱賣出,購進和賣出時以重量為單位,各箱的重量不一樣,單價不一樣,因此商店需要記錄下目前庫存的貨物的總重量和總價值。編寫乙個程式,通過定義類carlo來模擬商店貨物購進和賣出的情況。
(本題目主要練習靜態資料成員的使用,定義私有變數存每件貨物的**和重量,用靜態資料成員存貨物的總重量和總價錢,定義建構函式和析構函式,當定義新的物件完成初始化的功能和刪除物件時,從總重量和總價錢中減去物件的重量和**)
(5) 靜態成員練習#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()
1) 編寫乙個類node,宣告乙個資料成員member和已經靜態成員count,另建構函式初始化資料成員,並把靜態資料成員加1,另析構函式把靜態資料成員減1。
2) 在1)的基礎上編寫應用程式,建立3個物件,然後顯示他們的資料成員和靜態成員,再析構每個物件,並顯示他們對靜態資料成員的影響。
3) 修改2),讓靜態成員函式訪問靜態資料成員,並讓靜態資料成員是私有的。
(6)兩個類分別為整型數集合類和實型數集合數類。將缺少的內容補齊。並完成要求的其它內容。#include
#include
#include
#include
#include
using
namespace
std;
class node
~node()
void show()
static
void show_count()
};int node::count = 0;
int main()
如: class intset
void print( )
}; class floatset
void print( )
}; (1) 在intset中再增加乙個成員函式,將物件的整型資料拷貝的到floatset的物件中此成員函式的原型為:
void settofloat(floatset &set); //形參為拷貝的目標物件
(2)定義乙個友元函式來實現上述的功能。
請分別完成兩個程式。
(7) 分析以下程式的功能,把程式用三種方法(公有資料成員、友元、用成員函式訪問私有資料成員)補充完整,實現對物件animal的成員
(9) 設計合適的類結構,完成多項式加、減、乘運算。#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;
}
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 函式中分別用整型 實型 字元型資料進行測試。...