999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向對象程序設計中使用const實現數據保護

2018-01-04 11:06:12韓祥波
電腦知識與技術 2018年30期
關鍵詞:教學實踐

韓祥波

摘要:探討了const在常數組、常對象、指向對象的常指針、指向常對象的指針、常引用、常對象調用常成員函數等方面的案例,通過在計算機專業和卓越班的面向對象程序設計課程中多次教學使用,較好的提高了學生的編程積極性。

關鍵詞:C++;const;常對象;常成員函數;教學實踐

中圖分類號: G642.0 文獻標識碼:A 文章編號:1009-3044(2018)30-0070-01

1 引言

在教學過程中經常遇到學生對c++關鍵詞const困惑的情況:const是什么、為什么用、如何用、在使用時前后有哪些限制?諸如此類的小問題影響了不少對關鍵知識點的理解,本文將對此探討求解。

2 教學實踐

2.1 用const 定義常量

最初引入const關鍵詞 的目的是為了取代預編譯指令,但只是形式上的替換有不少的缺陷,如:int a=1,b=2; #define x a+b 計算x*x得到結果是5而不是9。對于程序中經常使用的需要共享、又需要防止改變的數據const 類型常量。如const int x=9。 定以后任何對x的改寫都是錯誤的。

2.2 const修飾常數組

void f(const int s[], int x) {for ( int i = 0; i < x; i++) cout << s[i] << " ";}

上述代碼對數組進行const修飾后不可以在循環體內對數組改寫。若循環體中添加注釋行s[i]++;則因常數組不可更改而報錯。

2.3 const修飾常對象及常對象成員

class Cobj {public:Cobj(int x) :m1(x){} int m1; };

int main(){ const Cobj t1(10); t1.m1=12; return 0}

若t1(10) ; 改為const Cobj t1(10);則因常對象成員不可改寫而報錯。

class Cobj {public:

Cobj(int x) :m1(x){}

const int m1;void show() {cout<

void show(Cobj t) {cout<

int main(){ Cobj t1(10); cout<

show(t1); return 0;}

類中的常成員m1可以被類內外的同名show()函數訪問,但在兩個函數任一個的函數體內修改m1的值,都因m1的const性而報錯。故類的常成員初始化只能在構造函數初始化表中進行即Cobj(int x) :m1(x){}語句。

2.4 const修飾指向對象的常指針

class Cobj {public:Cobj(int x) :m1(x){} int m1; };

int main(){ Cobj t1(10),t2(20);

Cobj * const p=&t1;; p->m1=12; return 0;}

上述代碼中使用了指向普通對象的常指針,初始化必須在定義時完成,可以改變對象的成員值,但不能讓該指針再次賦值,如添加p=&t2;則報錯。

2.5指向常對象的指針變量

class Cobj {public:Cobj(int x) :m1(x){} int m1;};

int main(){ const Cobj t1(10);

const Cobj * p=&t1;; cout<

上面使用了指向常對象的普通指針,但定義該類型指針時const不能省略,否則因指針類型不對而編譯報錯,即使常對象對成員進行了保護。

2.6 const修飾對象的常引用

class Cobj {public:Cobj(int x):m1(x) {}int m1;};

int main(){ Cobj t1(10);

const Cobj & r=t1; cout<

上面用到了對普通對象的常引用,實現了只讀不寫保護對象的目的,故添加r.m1=12的代碼會編譯報錯。引用的本質是對已知變量的別名,不必建立實參的拷貝,不開辟新的內存空間,減少了內存開銷,提高了運行效率,但初始化只能在定義時進行。

2.7 常對象調用常成員函數

class Cobj {public:Cobj(int x):m1(x) {}int m1;

void f1(const Cobj * p)const{cout<m1<

int main(){ const Cobj t1(10); t1.f1(&t1;); return 0;}

上面常對象調用員函數時只能調用常成員函數,若f1函數的修飾詞const刪掉則變成普通成員函數而編譯報錯。同時f1的形參表中的const也不可刪掉,即使函數體無改變對象成員值的意圖也不可。由于成員函數聲明的是常成員函數,故函數體中也不可改寫成員值。上述三種情況任一種出現都會編譯出錯。調用對象或實參為const性質時,無論函數體內是否想改寫,形參必須為const修飾。

3 結論

恰當的在全局和局部變量、形參和實參、類和對象等,利用const特性可以實現保護和開放的有效平衡,即方便的讀取了數據,又進行了保護,配合引用類型的使用較好的提高了程序的效率。

參考文獻:

[1] 柴小偉.大數據時代下計算機網絡信息安全[J].計算機與網絡,2016(17):52-53.

[2] 宋海玉,李錫祚,王玲芬,等. 面向對象程序設計課程建設的探索與實踐[J].計算機教育,2009(5):91-94.

[3] 夏承遺,李文杰,孫世溫. 問題驅動的“C++ 程序設計”教學方法研究[J].計算機教育,2010(1):122-125.

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

【通聯編輯:王力】1

猜你喜歡
教學實踐
小學數學體驗性學習的教學實踐
低年級衛生習慣的培養
基于三維軟件和云班課APP的機械設計課程教學實踐
職業(2016年10期)2016-10-20 22:23:49
中職職業生涯規劃課程的教學反思
職業(2016年10期)2016-10-20 21:59:29
試論類比推理在高等數學教學實踐中的應用
《單片機原理與應用》課程教學改革與實踐
科技視界(2016年22期)2016-10-18 16:51:33
中職計算機應用課程教學改革與反思
科技視界(2016年21期)2016-10-17 18:57:24
淺論高中化學生活化教學的實踐與思考
考試周刊(2016年79期)2016-10-13 23:10:24
淺談初中物理實驗教學與學生創新能力的培養
考試周刊(2016年79期)2016-10-13 23:09:42
測量平差課程教學改革探討與實踐
考試周刊(2016年79期)2016-10-13 21:37:05
主站蜘蛛池模板: 国产亚洲欧美在线中文bt天堂| 国产男女免费完整版视频| 亚洲精品综合一二三区在线| 亚洲天堂区| 特级毛片8级毛片免费观看| 亚洲综合色吧| 伊人久久久久久久| 亚洲国产欧美国产综合久久 | 中文字幕在线看视频一区二区三区| 亚洲福利视频一区二区| 亚洲日产2021三区在线| 国产真实二区一区在线亚洲| 国产久操视频| 黄色国产在线| 欧美激情福利| 久久性视频| 国产男人的天堂| 色噜噜中文网| www.99在线观看| 亚洲国产精品人久久电影| 91麻豆精品视频| 五月天综合婷婷| 乱码国产乱码精品精在线播放| 亚洲女同欧美在线| 久久精品女人天堂aaa| 亚洲国产精品日韩av专区| 亚卅精品无码久久毛片乌克兰 | 国产欧美日韩91| 亚洲高清中文字幕在线看不卡| 久热中文字幕在线| 欧美专区在线观看| 91久久偷偷做嫩草影院电| 国产swag在线观看| 污视频日本| 国产va免费精品| 人妻一本久道久久综合久久鬼色| 国产精品视频观看裸模| 无码免费的亚洲视频| 国产日韩精品欧美一区喷| 国产黑人在线| 亚洲中文字幕久久无码精品A| 国产精品人成在线播放| 亚洲av无码成人专区| 日本伊人色综合网| 亚洲狼网站狼狼鲁亚洲下载| 天天色天天综合网| 狠狠干综合| 凹凸精品免费精品视频| 日韩乱码免费一区二区三区| 五月天婷婷网亚洲综合在线| 久久国产精品麻豆系列| 人妻丰满熟妇av五码区| 视频二区亚洲精品| 亚洲国产成人超福利久久精品| 日本妇乱子伦视频| 亚洲动漫h| 女人18毛片一级毛片在线 | 日本高清视频在线www色| 精品丝袜美腿国产一区| 精品一区国产精品| a级毛片免费网站| 国产欧美视频在线观看| 亚洲午夜福利在线| 人人看人人鲁狠狠高清| 天天色天天综合| 亚洲国产看片基地久久1024| 国产簧片免费在线播放| 91精品国产丝袜| 成年人免费国产视频| 精品综合久久久久久97| 日本少妇又色又爽又高潮| 亚洲三级视频在线观看| 久久一本精品久久久ー99| 国产美女一级毛片| 真人高潮娇喘嗯啊在线观看| 成人韩免费网站| 久久综合丝袜长腿丝袜| 91福利在线观看视频| 国产精品尤物在线| 黄色网址免费在线| 亚洲黄色激情网站| 91啪在线|