国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

《C++面向對象程序設計》中引用類型的教學實踐

2017-03-14 22:56:09韓祥波張艷華黃晶晶張立紅
科技視界 2016年27期
關鍵詞:多態(tài)教學實踐

韓祥波 張艷華 黃晶晶 張立紅

【摘 要】分析了引用的本質,探討了引用在函數(shù)參數(shù)、復制構造函數(shù)、運算符重載、多態(tài)等方面的案例,通過在實驗班和卓越班的多次教學使用,更好的調(diào)動了學生的積極性。

【關鍵詞】引用;運算符重載;多態(tài);教學實踐

Teaching Practice of Reference in Course of “C++ Object Oriented Programming”

HAN Xiang-Bo ZHANG Yan-hua HUANG Jing-jing ZHANG Li-hong

(College of Computer Science and Technology,Shandong University of Technology,Zibo Shandong 255049,China)

【Abstract】The essence of reference was analyzed.It was discussed in the function parameter,the copy constructor,operator overloading, polymorphism and other aspects.The enthusiasm of students was mobilized through several teaching in the experimental class and excellent class.

【Key words】Reference;Operator overloading;Polymorphism;Teaching practice

0 引言

《面向對象程序設計》是計算機及相關專業(yè)的一門重要專業(yè)基礎課,其中諸多難點更需要學生體會掌握。而引用便是涉及抽象、封裝、繼承、多態(tài)這條主線的一個難點。學生前期學的指針作為C語言的精華在很多方面得到了高效使用,但是仍有其缺陷:要明確使用指針本身還是所指變量、無初始化時出現(xiàn)懸空指針、不合理賦值后出現(xiàn)系統(tǒng)關鍵地址存放內(nèi)容被改寫、項目后期維護代價高等。于是在C++、Java、c#這些主流的開發(fā)平臺中使用受到諸多限制,而它的代替者—引用出現(xiàn)了。

1 引用概念

在C++中,變量的引用就是變量的別名,故引用又稱別名(alias)??赏ㄟ^下述代碼來理解其本質。

#include

void main(){int x=100; int & m=x;

cout<<"x="<

CCopyS(const CCopyS & x) {number=x.number;cout<<"CCopy:"<

void main() { CCopyS s1,s2;s1.number=12;s2=s1;CCopyS s3=s1;}

在s2=s1中,對已存在的對象賦值故不需使用復制構造函數(shù),而在CCopyS s3=s1中按s1標準構造出新對象s3要調(diào)用復制構造函數(shù),出于對s1對象保護目的,對其加const限制。

4 引用在運算符重載中的使用

#include

class COpOl {public:int m1; COpOl(int x= 0){m1=x;}

friend ostream & operator << (ostream &, const COpOl &);};

ostream& operator << (ostream & output,COpOl & c){output<<" m1="<

void main( ){ COpOl c1,c2(3),c3(5); cout<

兩個參數(shù)均為引用類型,前者的使用使得復雜類型得以連續(xù)輸出。從cout<

5 引用在多態(tài)中的使用

#include

class CPolyMorphA {public:CPolyMorphA(int n) { a1= n;}

virtual void fn( ){cout<<" aaaa"<

class CPolyMorphB:public CPolyMorphA

{public:float a1;CPolyMorphB(int m,float p):CPolyMorphA(m),a1(p) { }

virtual void fn( ) {cout<<" bbbbbb"<

void call(CPolyMorphA & p){p.fn();}

void main( ){ CPolyMorphA s1(1001);}

通過call函數(shù)使用基類引用形參,保證了基類及其派生類族都可以調(diào)用,接口的統(tǒng)一使得實參更易使用。由于形參引用類型的定義使得虛函數(shù)fn( )隨著調(diào)用者的不同而實現(xiàn)動態(tài)自動查找對應自己版本的功能,而這個多態(tài)的實現(xiàn)若是非引用或指針類型,是難以實現(xiàn)虛函數(shù)如此功能的。

6 總結

引用使得函數(shù)單一用retrun返值的局面得以改變,從而能訪問函數(shù)臨時棧意外的變量,突破了函數(shù)一般形參的局限性,可以去改寫批量數(shù)據(jù)。若僅讓引用具有只讀性,可在形參中加const限制,如上文(ostream &,const COpOl&)只能輸出自定義類型而不能改寫。引用不像指針通過尋址間接訪問變量,而是通過與引用變量同址同值即一個變量兩個名字來使用,得得效率更高,性能更安全可靠,從而在當前諸多開發(fā)工具中廣泛使用。以上案例通過課堂教學和上機實踐方式,在實驗班和卓越班的多次教學中很好提高了學生的積極性。

【參考文獻】

[1]譚浩強.C++面向對象程序設計[M].北京:清華大學出版社,2006.

[2]錢能.C++程序設計教程[M].北京:清華大學出版社,1999.

[3]呂鳳翥.C++語言基礎教程[M].北京: 清華大學出版社,1999.

[責任編輯:田吉捷]

猜你喜歡
多態(tài)教學實踐
分層多態(tài)加權k/n系統(tǒng)的可用性建模與設計優(yōu)化
參差多態(tài)而功不唐捐
Java語言中方法重載與方法覆蓋的異同
基于三維軟件和云班課APP的機械設計課程教學實踐
職業(yè)(2016年10期)2016-10-20 22:23:49
中職職業(yè)生涯規(guī)劃課程的教學反思
職業(yè)(2016年10期)2016-10-20 21:59:29
中職計算機應用課程教學改革與反思
科技視界(2016年21期)2016-10-17 18:57:24
淺論高中化學生活化教學的實踐與思考
考試周刊(2016年79期)2016-10-13 23:10:24
淺談初中物理實驗教學與學生創(chuàng)新能力的培養(yǎng)
考試周刊(2016年79期)2016-10-13 23:09:42
測量平差課程教學改革探討與實踐
考試周刊(2016年79期)2016-10-13 21:37:05
人多巴胺D2基因啟動子區(qū)—350A/G多態(tài)位點熒光素酶表達載體的構建與鑒定及活性檢測
合水县| 庆元县| 库车县| 潮州市| 尼勒克县| 汤原县| 弥勒县| 河南省| 绥德县| 茌平县| 乌兰县| 汤原县| 安丘市| 福泉市| 盐亭县| 南丹县| 余庆县| 桑日县| 洱源县| 泸溪县| 漳平市| 仪征市| 平定县| 黎城县| 玉田县| 迁西县| 泽库县| 阳江市| 阳谷县| 特克斯县| 神农架林区| 古蔺县| 泗洪县| 铜梁县| 无极县| 永新县| 蒲江县| 江津市| 松阳县| 和平区| 岐山县|