韓祥波
摘要:探討了函數(shù)重載、函數(shù)模板、類模板、運(yùn)算符重載、運(yùn)算符重載在類模板中的應(yīng)用等案例,通過在計算機(jī)專業(yè)的面向?qū)ο蟪绦蛟O(shè)計課程中多次教學(xué)實(shí)踐,進(jìn)一步提高了學(xué)生的綜合編程能力和動手積極性。
關(guān)鍵詞:C++;類模板;運(yùn)算符重載;函數(shù)重載;教學(xué)實(shí)踐
中圖分類號: G642.0 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)29-0104-02
1 引言
在面向?qū)ο蟮慕虒W(xué)過程中經(jīng)常遇到學(xué)生對運(yùn)算符重載和模板方面的疑惑,單純的形式記憶和理解在具體應(yīng)用中往往問題頗多,本文針對這兩個教學(xué)難點(diǎn)進(jìn)行分析探討。
2 教學(xué)實(shí)踐
2.1從函數(shù)到函數(shù)重載
雖然客戶沒問題了,但這幾個函數(shù)僅僅因形參表的不同而一一定義。這種多個函數(shù)的雷同現(xiàn)象也需進(jìn)一步凝練概括,于是函數(shù)模板出現(xiàn)了。
2.2從函數(shù)重載到函數(shù)模板
可以看到代碼精簡,替換掉了無數(shù)個函數(shù),提高了編程效率。
2.3從函數(shù)重載到運(yùn)算符重載
由于運(yùn)算符重載的形式上的特殊性而使得不少學(xué)生難以熟練使用。其實(shí)運(yùn)算符重載本質(zhì)上就是函數(shù)重載。只是這時的函數(shù)名不再是具體規(guī)范的標(biāo)識符,而是特殊的符號即運(yùn)算符,但此時對于具體的運(yùn)算賦予了更多更廣的應(yīng)用。如普通的加號在重載后即可實(shí)現(xiàn)復(fù)數(shù)的相加也可實(shí)現(xiàn)文件的合并等。
由于運(yùn)算符直接做函數(shù)名不符合函數(shù)名規(guī)范而編譯出錯,需要在運(yùn)算符名前加operator關(guān)鍵詞。
2.4從函數(shù)模板到類模板
2.5運(yùn)算符重載在類模板中的應(yīng)用
運(yùn)算符重載和類模板作為C++學(xué)習(xí)中的兩個難點(diǎn),一起使用時,在彼此限制影響的情形下更需具體分析對待。下面通過數(shù)組類模板的定義來實(shí)現(xiàn)數(shù)組的初始化、賦值、讀寫等。
3 結(jié)論
通過上述案例的教學(xué)實(shí)踐,更多結(jié)合抽象數(shù)組類模板中運(yùn)算符重載的應(yīng)用,可以看出有效的使用運(yùn)算符重載和模板等,能使程序不再依賴具體數(shù)據(jù)類型,使其有了更強(qiáng)的通用性,很大的提高編程效率。
參考文獻(xiàn):
[1] 羅憲,王家偉,周建麗.“高級語言程序設(shè)計”“面向?qū)ο蟪绦蛟O(shè)計”精品課程教學(xué)改革與實(shí)踐[J].重慶交通大學(xué)學(xué)報:社會科學(xué)版,2009,9(1) :142-144.
[2] 譚浩強(qiáng).C++面向?qū)ο蟪绦蛟O(shè)計[M].北京:清華大學(xué)出版社,2006.
[3] 呂鳳翥.C++語言基礎(chǔ)教程[M].北京: 清華大學(xué)出版社.1999.
[4] 張敏輝.將案例驅(qū)動教學(xué)法運(yùn)用于程序設(shè)計類課程的實(shí)踐與成效[J].高等教育研究,2012,29(2):29-31.
【通聯(lián)編輯:王力】