




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
會計學1cppC中的類和結構體實用軟件方法發(fā)展的必然結構化程序設計方法程序=(算法)+(數(shù)據(jù)結構)主函數(shù)函數(shù)1函數(shù)2函數(shù)3函數(shù)1-1函數(shù)1-2函數(shù)1-3函數(shù)2-1函數(shù)3-1函數(shù)3-2數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3第1頁/共24頁軟件方法發(fā)展的必然面向對象方法的基礎程序=(算法+數(shù)據(jù)結構)第2頁/共24頁軟件方法發(fā)展的必然在面向對象中,算法與數(shù)據(jù)結構被捆綁成一個類對象:(算法+數(shù)據(jù)結構)程序=(對象+對象+……)程序就是許多對象在計算機中相繼表現(xiàn)自己對象又是一個個程序實體第3頁/共24頁軟件方法發(fā)展的必然構成程序的對象第4頁/共24頁什么是類?C++封裝的基本單元(數(shù)據(jù)+函數(shù))面向對象程序設計的基礎類的成員有訪問級別的控制
(public、protected、private)第5頁/共24頁classPerson{public:voidsetValue(char*p,int_age,int_weight){
strcpy(this->name,p);
age=_age;weight=_weight;
}
//函數(shù)成員voidinfo(){
cout<<name<<“”<<age<<“”<<weight<<endl;
}private:charname[16];//數(shù)據(jù)成員intage;//數(shù)據(jù)成員intweight;//數(shù)據(jù)成員};
//注意:類的定義最后要加”;”intmain(intargc,char*argv[]){
Personman;
man.setValue(“Pitter”,23,70);
();
return0;}第6頁/共24頁成員函數(shù)聲明和定義如何調用?(對象、引用、指針)成員函數(shù)重載.在類定義的內部,成員函數(shù)可以訪問任何其它成員函數(shù)和成員變量.隱含this指針第7頁/共24頁訪問控制public
——可以在外部通過對象或指針、引用訪問private
——不可以在外部通過對象或指針、引用訪問protected
——不可以在外部通過對象或指針、引用訪問第8頁/共24頁類和對象類是對象結構的說明,而類的變量,就是對象。classA{…};Aobj;
此處定義了A類的一個對象,對象名為obj,是在棧中分配的內存。對于類的數(shù)據(jù)成員,類的每個對象都有一份獨立的拷貝;而對于類的函數(shù)成員,所有變量都共享一份成員函數(shù)的代碼。第9頁/共24頁封裝
類的封裝的概念首先是,數(shù)據(jù)與算法(操作)結合,構成一個不可分割的整體(對象)。其次是,在這個整體生—些成員是保護它們被有效地屏蔽,以防外界的干擾和誤操作。另一些成員是公共的,它們作為接口提供給外界使用。而對該對象的描述即是創(chuàng)建用戶定義的類型,對C++來說,就是類的實現(xiàn)機制。第10頁/共24頁封裝數(shù)據(jù)+函數(shù)+訪問控制屏蔽變化
(設計模式中的依賴倒置原則:高層和底層都要依賴接口(或協(xié)議)互相之間不要有依賴)類的作用域,將成員函數(shù)定義在類的聲明外面第11頁/共24頁一個類的所有成員位于這個類的作用域內,訪問它們必須要通過此類或此類的對象類的作用域是類定義和類成員的定義范圍在類的作用域內,一個類的成員函數(shù)對同一類的數(shù)據(jù)成員具有無限制的訪問權類的作用域第12頁/共24頁C++中結構體和類C++中類與結構的唯一區(qū)別:類(class)定義中默認情況下的成員訪問級別是private。結構(struct)定義中默認情況下的成員訪問級別是public。第13頁/共24頁structSTime{ inthour; intmin; intsec;};classCTime{ inthour; intmin; intsec;};intmain(intargc,char*argv[]){ STimestm; CTimectm; stm.hour=12;
//OK
默認public stm.min=13;
//OK
默認public stm.sec=14;//OK
默認public ctm.hour=12;
//ERROR
默認private ctm.min=13;//ERROR
默認private ctm.sec=14;//ERROR
默認private return0;}第14頁/共24頁嵌套類可以在類的內部定義另一個類或結構體通過外層類名的作用域操作符“::”引用內部類(后面STL的迭代器會遇到這種情況)可以將外層類理解為一個命名空間嵌套類也收訪問級別限制第15頁/共24頁#include<iostream>usingnamespacestd;classInit{public:
classapp{public:voidset_app_val(intx);
intget_app_val(); private:intapp_val;};private:intInit_val;};voidInit::app::set_app_val(intx){ app_val=x;}intInit::app::get_app_val(){ returnapp_val;}第16頁/共24頁intmain(){Init::appobj1;//嵌套類的對象obj1.set_app_val(12);cout<<obj1.get_app_val()<<endl;return0;}第17頁/共24頁類名的可見性classSample//定義類{//...};voidfunc(intSample)//函數(shù)形參隱藏了類名{classSamplea;//定義一個對象要用到類名
Sample++;//形參的算術操作//…’}第18頁/共24頁如果一個類型名隱藏了一個非類型名,則用一般作用域規(guī)則即可。ints=0;//全局變量voidfunc(){classs{//…};//類s隱藏了全局變量ssa;//定義一個類對象::s=3;//引用全局變量}//classs作用域結束intg=s;//用全局變量s給變量g初始化可見性第19頁/共24頁封裝
共享庫的構成一個商業(yè)性類庫包括一個類定義和成員函數(shù)定義。C++程序結構一個C++應用程序是一個程序工程。一個c++程序工程文件中,應該組合下面這些程序文件:
main.cppclass.cpp’sfunction.cpp’s
第20頁/共24頁其中包含主函數(shù)的源文件應該是下面的形式:#include<標準類庫頭文件>’s#include<標準函數(shù)頭文件>’s#include”自定義類庫頭文件”’s#include”自定義函數(shù)頭文件”’s函數(shù)原型s’全局數(shù)據(jù)定義’svoidmain(){//...}函數(shù)定義’s
第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西衛(wèi)生健康職業(yè)學院《金融風險分析師(FRM)專題(雙語)》2023-2024學年第二學期期末試卷
- 浙江金融職業(yè)學院《供變電系統(tǒng)項目設計》2023-2024學年第二學期期末試卷
- 廈門工學院《計算機在林業(yè)中的應用》2023-2024學年第二學期期末試卷
- 湖南鐵道職業(yè)技術學院《生物化學實驗A》2023-2024學年第二學期期末試卷
- 華北理工大學輕工學院《科研寫作》2023-2024學年第二學期期末試卷
- 齊魯醫(yī)藥學院《中外文化比較專題》2023-2024學年第二學期期末試卷
- 重慶對外經貿學院《包裝材料及應用》2023-2024學年第二學期期末試卷
- 醫(yī)院科室年度工作總結
- 母親六十歲生日宴會主持詞(7篇)
- 公司前臺的工作總結
- 2024-2025學年高中物理第十二章機械波4波的衍射和干涉課時作業(yè)含解析新人教版選修3-4
- 2025年新華師大版數(shù)學七年級下冊全冊導學案
- 《供熱工程》課件
- 倉管員業(yè)務技能培訓
- 安全管理人員七大職責
- 《國民經濟行業(yè)分類與代碼》
- 音樂教育國際化進程-洞察分析
- 植入式靜脈給藥裝置護理技術課件
- 單兵綜合演練
- 疼痛中醫(yī)護理
- 歐式風格的室內設計
評論
0/150
提交評論