




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C+學(xué)習(xí)筆記 2010-7-16日:1預(yù)編譯指令 include ,其中,中不能有空格。2配置cout的輸出的小數(shù)點的個數(shù),如果需要在程序中第二次配置則只需要配置最后一即可以。cout.setf(ios:fixed);cout.setf(ios:showpoint);cout.precision(2);cout7.934endl;3cout5/0; 當除數(shù)為零的時候C+中編譯時可以檢測出來,在java中編譯通過運行時也無錯誤。在C+中 double/int a=5/0;編譯都不能通過;而在Java中:double a=5.0/0.0;編譯通過,運行結(jié)果為無窮大。Infinityint a=5/0;編譯也通過,但是運行時錯誤。4在C+和java中,命名常量時都建議使用大寫。int FOOD_PRICE=69;5 在C+和Java中,庫中提供的math函數(shù)總ceil為向上取整數(shù),floor為向下取整數(shù)。C+中區(qū)絕對值 整型- abs() ,long- labs() ,double-dabs(),因為其不再cmath函數(shù)庫中,所要必須包含#include6.在整數(shù)除法中,5/2,結(jié)果為2:不論小數(shù)多大,全部舍棄。 C+中強制類型轉(zhuǎn)換:static_cast(9);7.C+中要求完整的函數(shù)定義或者聲明必須在函數(shù)被調(diào)用之前定義。這與Java中不同。8為了增強程序的可讀性,應(yīng)該將所有的include預(yù)編譯指令放在一起,所有的的全局變量放在一起。全局變量放在include之后,所有函數(shù)聲明之前。9如果using namespace std;放在函數(shù)中,則此聲明只在該函數(shù)中有效。2010-7-17日:1 C+中要求函數(shù)要么只返回一個值,要么不返回值2 傳引用調(diào)用機制:滿足了用變量本身替換形參的要求。必須以某種方式來標記傳引用調(diào)用,使編譯器將其與傳調(diào)用相區(qū)別。所以需要在函數(shù)的聲明和定義頭中,在類型名稱的末尾附加符號&。Example:void get_input(double & f_variable) using namespace std; coutf_variable;調(diào)用如下; get_input(f_variable);從鍵盤中讀取的值直接賦值給了f_variable.函數(shù)調(diào)用中相應(yīng)的實參會成為一個變量,而不是一個常量或者是一個表達式。編譯器為每一個變量都分配一個內(nèi)存地址,在傳引用調(diào)用中就是傳的這些變量的內(nèi)存地址。在C+一個函數(shù)中,可以同時使用傳值或者傳引用參數(shù)列表。void good_stuff(int &p1,int p2);假設(shè)希望改變一個變量的值那么就應(yīng)該使用傳引用調(diào)用,此時如果忘記了&,那么該變量的值就不會改變,從而帶來錯誤。應(yīng)該注意!3 文件輸入輸出流,必須是使用預(yù)編譯指令#inludeifstream in;ofstream out;in.open(D:我的文檔桌面file.dat);out.open(D:我的文檔桌面gfile.dat);int first,second;infirstsecond;coutfirstsecondendl;outdfd;in.close;out.close;檢查文件是否成功打開:If(in.fail()cout”Sorry ,opening failed!n”;exit(1);調(diào)用exit方法,必須加入#include,如果因為一個錯誤而調(diào)用exit則exit(1),其他情況下使用exit(0);在想文件中寫入數(shù)據(jù)時,必須先打開文件,此時如果直接向文件中寫入數(shù)據(jù)那么原來文件中的數(shù)據(jù)就會丟失,此時我們可以使用向文件中追加數(shù)據(jù) 的方式來寫入數(shù)據(jù): out.open(“important.txt”,ios:app);4. 流作為函數(shù)實參,必須使用傳引用調(diào)用的方式。 使用輸入流時,可以使用innext判斷是否已經(jīng)讀取到了文件的末尾。 也可以使用輸入流的eof成員函數(shù)來判段。eof end of file 2010-7-18日:1 結(jié)構(gòu):struct定義如下:struct CDAcount double balance; double interest_rate; int term;通常要求結(jié)構(gòu)名稱大小寫混合,第一個字母大寫;CDAcount the_account;使用時: the_account.balance=12;作為函數(shù)參數(shù)時既可以是 傳值 又可以是 傳引用結(jié)構(gòu)中可以使用另外一種結(jié)構(gòu)即層次化。應(yīng)該也可以使用自己實現(xiàn)遞歸定義。在聲明一個結(jié)構(gòu)的同時可以對其進行初始化,例如 struct Date int month; int day int year;Date due_date=12,32,2004;2. 在類的定義最后的大括號后面要加上“;”.3. C+中構(gòu)造函數(shù): 必須與類同名,不能有返回值,不允許指定返回值類型,即使是void也不可以(與Java相同); 構(gòu)造函數(shù)要放在public:聲明部分。 構(gòu)造函數(shù)初始化區(qū)域: 例如 BankAccount:BankAccount(int dollars,int cents,double rate):balance(dollars+0.01*cents),interest_rate(rate) if() 初始化類的部分或者是全部的成員變量。C+中總是提供一個默認的構(gòu)造函數(shù)。4 一個類的友元函數(shù)并不是這個類的成員函數(shù),而是一個友好的函數(shù),他能夠像一個成員函數(shù)那也讀取此類的私有變量。例如; class DayofYear public : friend bool equal(DayofYear year1,DayofYear year2); DayofYear(); void input(); void output(); private : int month; int year;int main()/equal 并不是DayofYear的成員函數(shù),但是可以直接訪問其私有成員變量bool equal(DayofYear year1,DayofYear year2) return (year1.month=year2.month &year1.year=year2.year);5. 使用傳引用調(diào)用 要優(yōu)于 傳值引用 對于一個類來說如果使用傳引用傳遞參數(shù),而函數(shù)又不會對參數(shù)進行修改,此時可以使用const來修飾。 添加了const ,編譯器就知道該參數(shù)不能修改,如果修改后就會報錯。 const要放到函數(shù)聲明之后,剛好在末尾的分號之前。函數(shù)定義頭也應(yīng)該包含一個const,與函數(shù)聲明想匹配。例如: class Samplepublic : Sample(); friend int compare(const Sample&s1,const Sample s2); void output() const;/output不能修改調(diào)用output方法的類實例的值6 重載操作符時,不應(yīng)該改變操作符的元數(shù)。 不能新建一個操作符,只能重載已有的操作符 不能改變操作符的優(yōu)先級 不可以重載:. : .* ?: bool operator = (const Money & amount1,const Money &amount2) return (.); 重載時,返回必須是一個流變量,而且是引用 ostream &operator(istream&ins,Money & amount)7. 使用#ifndef 在一些情況下,一寫文件包含了其他文件,而其他文件又包含了更多的文件,這樣就有可能出現(xiàn),一個文件最終會包含多個.h頭文件的情況。這是使用 #ifndef(if not define). #endif如果沒有定義則編譯#ifndef #endif之間的內(nèi)容8. 命名空間 #include using namespace std; namespace savitch1 void greeting();namespace savitch2 void greeting();int main() using namespace savitch1; greeting(); using namespace savitch2; greeting();return 0;namespace savitch1 void greeting() cout”This is savitch1.n”;namespace savitch2 void greeting() cout”This is savitch2.n”; 8. 可以只使用命名空間中的特定一個函數(shù),而不使用命名空間中其他函數(shù)。這樣可以防止:當兩個命名空間中同時含有相同的函數(shù)fun1,而你想分別調(diào)用兩個命名空間中的fun2,fun3。 如果此時你使用using namespace name1;using namespace name2;那么這時會造成fun1沖突;解決的方法: using name1:fun2 using name2:fun3但是如果using name1:fun1; using name2:fun1;將會編譯錯誤。9. C+中數(shù)組作為形參其實跟傳引用相同,Java亦是如此10.C(#include)字符串中,每一個字符串最后都有一個”0”表示結(jié)束。所以應(yīng)該注意字符串的長度。 char my_string20=”Hi there.” char my_string10;strcpy(my_string,”hello”);strncpy(my_string,”fjsdkfksdjfkfsdf”,9);/最多賦值9個字符包含0C+中字符操作類: #include11. 指針:變量的內(nèi)存地址。 指針可以存儲到一個變量中去。double *p;聲明可以容一個指向double數(shù)據(jù)類型變量的指針。&操作符 可以判斷一個變量的內(nèi)存地址,然后可以將其賦值給一個指針變量。 int *p,p1;p=&p1;p1可以直接成為p1,亦可以成為“由p指向的變量“由p指向的變量”也必須使用*p表示 p1=0; p=&p1; *p=42;coutp1endl;cout*pendl;輸出為:42 42、定義指針類型: typedef int* IntPtr; IntPtr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度風(fēng)力發(fā)電項目風(fēng)機設(shè)備采購與投資分析合同
- 2025年度智能制造對賭協(xié)議約定倍收益合作協(xié)議
- 二零二五年度林地使用權(quán)變更及補償合同
- 2025年度藥店藥店藥品知識產(chǎn)權(quán)保護聘用勞動合同
- 股權(quán)代持協(xié)議書標準模板:2025年度股權(quán)激勵適用
- 2025年度森林土地承包與林木撫育合作協(xié)議
- 二零二五年度企業(yè)內(nèi)部員工外出安全免責(zé)合同
- 二零二五年度汽車零部件貨物運輸保險協(xié)議
- 二零二五年度歷史文化街區(qū)拆除搬遷保護協(xié)議
- 2025年度服裝廠職工勞動合同模板書(智能化工廠)
- (新版)廣電全媒體運營師資格認證考試復(fù)習(xí)題庫(含答案)
- 2024年法律職業(yè)資格考試(試卷一)客觀題試卷與參考答案
- 安全生產(chǎn)重大事故隱患排查報告表
- 淺圓倉滑模及倉頂板施工方案
- 應(yīng)用文第一章緒論2016春
- 統(tǒng)編版必修上冊第五《鄉(xiāng)土中國》導(dǎo)讀優(yōu)質(zhì)課件PPT
- 電纜敷設(shè)施工方案及安全措施范文
- 市場營銷課程標準
- ppt模板:信保專用中國出口信用保險公司課件
- 2021年四川省綿陽市中考物理真題及答案
- 小學(xué)音樂課后服務(wù)教學(xué)設(shè)計方案計劃
評論
0/150
提交評論