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