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

面向對象程序設計中構造、析構函數的教學探討

2019-03-04 11:05:01韓祥波
電腦知識與技術 2019年34期
關鍵詞:教學實踐

摘要:結合構造、析構函數出現的原因探討了構造函數的三種形式,分析了拷貝構造函數的三種調用方式,討論了全局對象、靜態對象、塊對象的構造、析構過程。通過卓越班面向對象程序設計中多次教學實踐證明,學生興趣提升,對知識點的理解更有深度。

關鍵詞:C++;析構;拷貝構造函數;全局對象;靜態對象;教學實踐

中圖分類號:G642 文獻標識碼:A

文章編號:1009-3044(2019)34-0168-02

1 概述

在C++中類的實例即對象的創建需要一系列初始化的工作,為此引入了構造函數達到自動調用、分配內存空間、初始化數據來創建對象的目的。由于其自動調用的特性決定了構造函數的諸多要求:函數名和類名相同,且無返回值,可以重載,不能被繼承,不能用函數名調用。析構函數則是與構造函數相反:對結束生命周期的對象回收來釋放內存。析構函數也是自動調用并沒有函數返回值,不能被繼承,由于沒有形參無法實現函數重載,故類的析構函數只能有1個,而構造函數可以有多個。構造函數常見形式有:默認構造函數、普通的構造函數、拷貝構造函數。默認構造函數的特點是沒有參數,若沒有定義構造函數,則編譯器自動生成一個無參構造函數作為默認構造函數,而拷貝構造函數僅有一個參數,且參數類型是對自身類的引用,且與參數類型的構造函數則為普通的構造函數。

2 教學實踐

2.1 三種構造函數并及拷貝構造函數的三種調用方式

下面舉例來說明上述三種構造函數并對拷貝構造函數的復雜調用方式進行了探討。

#include

class Cobj{public:Cobi0{x=0;)Cobj(int In){x=m;)

Cobj(const Cobj&p)(x=p.x;cout《”Calling constructor:”<

intx;};

void fI(Cobj p)(cout<<”Calling fl”<

Cobj f20 {cout<<”Calling fl”《endl; Cobj

a(102);

re-turn a;}

main0 {Cobj a(lOI);Cobj b=a; f1(b);

b= f20;}

其中Cobi0(x=0;)為默認構造函數,將類的成員x初始為0;普通構造函數Cobj(int m){x=m;)使得成員值為用戶設定值。拷貝構造函數Cobj(const Cobj&p)的參數必須是本類的引用,此處的const不是必須項,加入的目的是保護傳人的實參不改變。主函數中Cobjb=a語句目的是用a初始化b從而第1次調用拷貝構造函數。

fl(b)語句使得對象b作為funl的實參而第2次調用拷貝構造函數;語句b= f20使得函數的返回值是類對象,函數返回時調用拷貝構造函數。

2.2 全局對象、靜態對象、塊對象的構造與析構

下面結合一個綜合實例來說明構造函數、析構函數的執行順序。該實例包含全局對象、靜態對象、塊對象、自定義函數等復雜情況。

#include

class

Cobj( public: Cobj(int n){num=n;cout<<”constructor”<

-CobiO{cout<<”destructor”<

Cobj stl(lOOl);static Cobj st2(1002);voidfnO{Cobj st3(1003);】

mainO{cout《”begin”《endl; int i=l;Cobj st4(1004);

for(i=l;i<=2;i++) {static Cobj st5(1005); Cobj st6(1006);1

fn0; cout<<”end”<

執行結果如圖2所示。

分析下執行過程:啟動代碼會在啟動main0之前完成所有的初始化工作,因此在輸出”begin”前構造全局對象1001,接著構造靜態對象1002后才執行主函數。在main0中先構造對象1004,然后進入循環語句,在三次循環中對于普通對象1006每次循環都是先構造,當本次循環結束時作為塊對象生命周期要結束,故調用析構函數。主函數中的for語句用”(...)”代替時,塊內定義的對象當塊執行完畢后也要立刻釋放。如對象1007就屬于這種情況。而對于塊內的1005對象由于是靜態對象只創造1次,在退出主函數時調用析構函數才釋放。接著執行fn0函數構造對象1003,該函數執行完畢后隨即釋放1003。最后退出主函數時釋放靜態對象1002和全局對象1001。首行代碼用#include 與命名空間模式則無法輸出”destructor1001”。即全局對象在不同的編譯情景下會有較大差異。

3 結論

構造函數、析構函數的自動調用使得不少同學迷茫,本文分析了這兩個函數出現的緣由,結合幾個教學案例分析了默認構造函數、普通的構造函數、拷貝構造函數的定義格式和使用方法,并對拷貝構造函數的多種調用方式進行了代碼解析,通過全局對象、靜態對象、塊對象在程序中的構造、析構過程闡明了面向對象程序設計中對象這個特定角色的來世今生。

參考文獻:

[1]尹詩玉,方歡,基于C++語言的外部輸入若干問題的探討[J].電腦知識與技術,2018(04).

[2] BjarneStroustrup.C++程序設計語言:特別版[M].裘宗燕,譯.北京:機械工業出版社,2010.

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

[4]陳維興,林小茶.C++面向對象程序設計教程[M].北京:清華大學出版社,2000.

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

[6]羅憲,王家偉,周建麗.“高級語言程序設計”“面向對象程序設計”精品課程教學改革與實踐[J].重慶交通大學學報(社會科學版),2009,9(1).

[7]孫振華,戎麗霞.淺談微課在高職計算機專業教學中的應用研究——以《C#程序設計》課程為例[J].電腦知識與技術,2015(18).

[8] Stanley,B.Lippman,Barbara E.Moo.C++Primer中文版:第四版[M].李師賢,等譯.北京:人民郵電出版社,2006.

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

【通聯編輯:王力】

收稿日期:2019-09-23

作者簡介:韓祥波(1975-),男,山東淄博人,講師,碩士,研究方向為計算機軟件與理論。

猜你喜歡
教學實踐
小學數學體驗性學習的教學實踐
低年級衛生習慣的培養
基于三維軟件和云班課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
主站蜘蛛池模板: 18黑白丝水手服自慰喷水网站| jizz在线观看| 日本草草视频在线观看| 亚洲中文精品久久久久久不卡| 欧美精品高清| 精品1区2区3区| 国产成人精品2021欧美日韩| 亚洲视频免费播放| 亚洲国产天堂久久综合| 国产91高清视频| 一级香蕉视频在线观看| 国产麻豆aⅴ精品无码| 欧洲高清无码在线| 久久久久久久蜜桃| 91精品国产自产91精品资源| 新SSS无码手机在线观看| 国产无码精品在线| 国产福利免费视频| 亚洲日本韩在线观看| 久久人体视频| 三级国产在线观看| 国产成人AV综合久久| 国产亚洲视频免费播放| 萌白酱国产一区二区| 亚洲综合片| 伊人久久婷婷五月综合97色 | 国产在线视频导航| 色综合五月婷婷| 97在线观看视频免费| 另类重口100页在线播放| 亚洲人成网站在线播放2019| 国产成年女人特黄特色大片免费| 亚洲码一区二区三区| 在线欧美a| 在线播放国产99re| 六月婷婷精品视频在线观看| 中文字幕亚洲电影| 国产欧美高清| 8090午夜无码专区| 久久久精品国产亚洲AV日韩| 欧美综合在线观看| 欧美激情视频一区二区三区免费| 黄色网页在线播放| 精品国产自在在线在线观看| 国产乱子伦无码精品小说| 久久永久精品免费视频| 亚洲女同一区二区| 亚洲精品大秀视频| 亚洲三级成人| 中文字幕有乳无码| a级毛片毛片免费观看久潮| 欧美日韩91| 欧美激情首页| 国产精品成人不卡在线观看| 亚洲无码精品在线播放| 亚洲精品国产首次亮相| 亚卅精品无码久久毛片乌克兰| 亚洲制服中文字幕一区二区| 亚洲精品在线影院| 日韩精品免费在线视频| 色哟哟精品无码网站在线播放视频| 日韩精品毛片人妻AV不卡| 福利片91| 萌白酱国产一区二区| 国产激情第一页| 欧美精品一区在线看| 蝴蝶伊人久久中文娱乐网| 啪啪永久免费av| 2020极品精品国产| 亚洲性影院| 亚瑟天堂久久一区二区影院| 国产午夜一级淫片| 色综合天天操| 免费人成黄页在线观看国产| 最新无码专区超级碰碰碰| 2021国产精品自拍| 成人免费视频一区| 亚洲日韩在线满18点击进入| 久久亚洲精少妇毛片午夜无码| 亚洲国产精品VA在线看黑人| 国产va视频| 国产一区二区三区夜色|