資源描述:
《計(jì)算機(jī)圖形學(xué)-ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二章VisualC++繪圖基礎(chǔ)本章學(xué)習(xí)目標(biāo):MFC上機(jī)操作步驟VisualC++6.0基本繪圖函數(shù)1本章內(nèi)容復(fù)習(xí)類和對(duì)象2.1MFC上機(jī)操作步驟2.2基本繪圖函數(shù)2.3本章小結(jié)2.4習(xí)題2關(guān)于工具VisualC++6.0是目前使用極為廣泛的可視化編程平臺(tái)。使用VC++開發(fā)的圖形,與使用TurboC開發(fā)的圖形相比,不僅可以顯示真彩色,而且可以實(shí)現(xiàn)交互式繪圖。32.1類和對(duì)象(復(fù)習(xí))類的定義(格式)class類名{public:數(shù)據(jù)成員和成員函數(shù)的聲明;private:數(shù)據(jù)成員和成員函數(shù)的聲明;protected:數(shù)據(jù)成員和成員函數(shù)的聲明;};類是用戶
2、自己定義的一種數(shù)據(jù)類型,是封裝屬性和操作的基本單元。類的屬性用數(shù)據(jù)成員表示,類的操作用成員函數(shù)表示。41類的定義對(duì)象是用“類”類型定義的“變量”,稱為類的實(shí)例?!靖袷健款惷麑?duì)象表列(<參數(shù)表列>);Rectmyrect,rect;Rectmyrect(30,20);一個(gè)類被定義后,并不占用內(nèi)存空間,只有當(dāng)類被實(shí)例化為對(duì)象后,自動(dòng)調(diào)用構(gòu)造函數(shù),對(duì)象才占用內(nèi)存空間類是永恒的,對(duì)象是暫時(shí)的.52.1.2構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)是負(fù)責(zé)對(duì)象的創(chuàng)建和撤銷的特殊成員函數(shù)。構(gòu)造函數(shù)的作用是創(chuàng)建對(duì)象時(shí)對(duì)數(shù)據(jù)成員進(jìn)行初始化構(gòu)造函數(shù)的名稱與類名相同析構(gòu)函數(shù)的作
3、用是撤銷對(duì)象時(shí)清理對(duì)象占用的內(nèi)存空間析構(gòu)函數(shù)的名稱是由構(gòu)造函數(shù)名稱前加上取反運(yùn)算符“~”構(gòu)成二者都沒有數(shù)據(jù)類型和返回值且不需要用戶調(diào)用,在創(chuàng)建和撤銷對(duì)象時(shí)由系統(tǒng)自動(dòng)執(zhí)行。6classRect//定義長(zhǎng)方形類{public:Rect(int,int);//聲明帶參構(gòu)造函數(shù)~Rect();//聲明析構(gòu)函數(shù)doublecircum();//聲明周長(zhǎng)函數(shù),成員函數(shù)(操作)doublearea();//聲明面積函數(shù),成員函數(shù)(操作)private:intlength,width;//聲明長(zhǎng)方形的長(zhǎng)度和寬度,數(shù)據(jù)成員(屬性)};Rect::Rect(intlen
4、,intw){//定義帶參構(gòu)造函數(shù),對(duì)數(shù)據(jù)成員初始化,::表示作用域,表示成員函數(shù)的歸屬length=len;width=w;cout<<"建立對(duì)象"<){函數(shù)體;}72.1.3對(duì)象的動(dòng)態(tài)建立和釋放使用new和del
5、ete運(yùn)算符可以根據(jù)需要?jiǎng)討B(tài)的建立和撤銷對(duì)象使用new運(yùn)算符建立的動(dòng)態(tài)對(duì)象是無名對(duì)象,不能通過對(duì)象名調(diào)用,只能通過指針訪問Rect*p=newRect(30,20);用new動(dòng)態(tài)分配指定大小的存儲(chǔ)空間后,返回一個(gè)指向該對(duì)象的指針,即所分配的存儲(chǔ)空間的起始地址,可以通過指針p來訪問該對(duì)象。P->circum();Deletep;82.1.4繼承與派生繼承是指在已有類的基礎(chǔ)上增加新的內(nèi)容創(chuàng)建一個(gè)新類。在繼承過程中,已經(jīng)存在的類稱為基類,新創(chuàng)建的類稱為派生類。派生類的定義class派生類名:〔繼承方式〕基類名{派生類新增加的數(shù)據(jù)成員和成員函數(shù);};繼承方式
6、包括3種:公有繼承public、私有繼承private和保護(hù)繼承protected。繼承方式可以缺省,默認(rèn)為私有繼承。92.1.4繼承與派生【注意】基類的構(gòu)造函數(shù)是不能被繼承的,對(duì)繼承過來的基類數(shù)據(jù)成員的初始化工作要由派生類的構(gòu)造函數(shù)來完成,需要在定義派生類的構(gòu)造函數(shù)時(shí),調(diào)用基類的構(gòu)造函數(shù)。派生類的構(gòu)造函數(shù)的定義派生類構(gòu)造函數(shù)名(總參數(shù)表列):基類構(gòu)造函數(shù)名(參數(shù)表列){派生類中新增數(shù)據(jù)成員初始化語句}102.1.4繼承和派生例從已有的長(zhǎng)方形類Rect繼承出長(zhǎng)方體類Cube,增加高度數(shù)據(jù)成員height和計(jì)算體積成員函數(shù)volume()。11clas
7、sCube:publicRect{//公有繼承派生類public:Cube(intlen,intw,inth);~Cube();doublevolume();//新增面積成員函數(shù)private:intheight;//新增高度數(shù)據(jù)成員};Cube::Cube(intlen,intw,inth):Rect(len,w){//派生類構(gòu)造函數(shù)height=h;}Cube::~Cube()//派生類析構(gòu)函數(shù){}doubleCube::volume(){//派生類體積函數(shù)returnlength*width*height;}12MicrosoftFoundat
8、ionClassLibrary(MFC)以C++形式封裝的WindowsAPI(ApplicationPro