C++學(xué)習(xí)筆記.docx_第1頁
C++學(xué)習(xí)筆記.docx_第2頁
C++學(xué)習(xí)筆記.docx_第3頁
C++學(xué)習(xí)筆記.docx_第4頁
C++學(xué)習(xí)筆記.docx_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C+學(xué)習(xí)筆記 2010-7-16日:1預(yù)編譯指令 include ,其中,中不能有空格。2配置cout的輸出的小數(shù)點(diǎn)的個(gè)數(shù),如果需要在程序中第二次配置則只需要配置最后一即可以。cout.setf(ios:fixed);cout.setf(ios:showpoint);cout.precision(2);cout7.934endl;3cout5/0; 當(dāng)除數(shù)為零的時(shí)候C+中編譯時(shí)可以檢測(cè)出來,在java中編譯通過運(yùn)行時(shí)也無錯(cuò)誤。在C+中 double/int a=5/0;編譯都不能通過;而在Java中:double a=5.0/0.0;編譯通過,運(yùn)行結(jié)果為無窮大。Infinityint a=5/0;編譯也通過,但是運(yùn)行時(shí)錯(cuò)誤。4在C+和java中,命名常量時(shí)都建議使用大寫。int FOOD_PRICE=69;5 在C+和Java中,庫中提供的math函數(shù)總ceil為向上取整數(shù),floor為向下取整數(shù)。C+中區(qū)絕對(duì)值 整型- abs() ,long- labs() ,double-dabs(),因?yàn)槠洳辉賑math函數(shù)庫中,所要必須包含#include6.在整數(shù)除法中,5/2,結(jié)果為2:不論小數(shù)多大,全部舍棄。 C+中強(qiáng)制類型轉(zhuǎn)換:static_cast(9);7.C+中要求完整的函數(shù)定義或者聲明必須在函數(shù)被調(diào)用之前定義。這與Java中不同。8為了增強(qiáng)程序的可讀性,應(yīng)該將所有的include預(yù)編譯指令放在一起,所有的的全局變量放在一起。全局變量放在include之后,所有函數(shù)聲明之前。9如果using namespace std;放在函數(shù)中,則此聲明只在該函數(shù)中有效。2010-7-17日:1 C+中要求函數(shù)要么只返回一個(gè)值,要么不返回值2 傳引用調(diào)用機(jī)制:滿足了用變量本身替換形參的要求。必須以某種方式來標(biāo)記傳引用調(diào)用,使編譯器將其與傳調(diào)用相區(qū)別。所以需要在函數(shù)的聲明和定義頭中,在類型名稱的末尾附加符號(hào)&。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)的實(shí)參會(huì)成為一個(gè)變量,而不是一個(gè)常量或者是一個(gè)表達(dá)式。編譯器為每一個(gè)變量都分配一個(gè)內(nèi)存地址,在傳引用調(diào)用中就是傳的這些變量的內(nèi)存地址。在C+一個(gè)函數(shù)中,可以同時(shí)使用傳值或者傳引用參數(shù)列表。void good_stuff(int &p1,int p2);假設(shè)希望改變一個(gè)變量的值那么就應(yīng)該使用傳引用調(diào)用,此時(shí)如果忘記了&,那么該變量的值就不會(huì)改變,從而帶來錯(cuò)誤。應(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,如果因?yàn)橐粋€(gè)錯(cuò)誤而調(diào)用exit則exit(1),其他情況下使用exit(0);在想文件中寫入數(shù)據(jù)時(shí),必須先打開文件,此時(shí)如果直接向文件中寫入數(shù)據(jù)那么原來文件中的數(shù)據(jù)就會(huì)丟失,此時(shí)我們可以使用向文件中追加數(shù)據(jù) 的方式來寫入數(shù)據(jù): out.open(“important.txt”,ios:app);4. 流作為函數(shù)實(shí)參,必須使用傳引用調(diào)用的方式。 使用輸入流時(shí),可以使用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)名稱大小寫混合,第一個(gè)字母大寫;CDAcount the_account;使用時(shí): the_account.balance=12;作為函數(shù)參數(shù)時(shí)既可以是 傳值 又可以是 傳引用結(jié)構(gòu)中可以使用另外一種結(jié)構(gòu)即層次化。應(yīng)該也可以使用自己實(shí)現(xiàn)遞歸定義。在聲明一個(gè)結(jié)構(gòu)的同時(shí)可以對(duì)其進(jìn)行初始化,例如 struct Date int month; int day int year;Date due_date=12,32,2004;2. 在類的定義最后的大括號(hào)后面要加上“;”.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è)默認(rèn)的構(gòu)造函數(shù)。4 一個(gè)類的友元函數(shù)并不是這個(gè)類的成員函數(shù),而是一個(gè)友好的函數(shù),他能夠像一個(gè)成員函數(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)于 傳值引用 對(duì)于一個(gè)類來說如果使用傳引用傳遞參數(shù),而函數(shù)又不會(huì)對(duì)參數(shù)進(jìn)行修改,此時(shí)可以使用const來修飾。 添加了const ,編譯器就知道該參數(shù)不能修改,如果修改后就會(huì)報(bào)錯(cuò)。 const要放到函數(shù)聲明之后,剛好在末尾的分號(hào)之前。函數(shù)定義頭也應(yīng)該包含一個(gè)const,與函數(shù)聲明想匹配。例如: class Samplepublic : Sample(); friend int compare(const Sample&s1,const Sample s2); void output() const;/output不能修改調(diào)用output方法的類實(shí)例的值6 重載操作符時(shí),不應(yīng)該改變操作符的元數(shù)。 不能新建一個(gè)操作符,只能重載已有的操作符 不能改變操作符的優(yōu)先級(jí) 不可以重載:. : .* ?: bool operator = (const Money & amount1,const Money &amount2) return (.); 重載時(shí),返回必須是一個(gè)流變量,而且是引用 ostream &operator(istream&ins,Money & amount)7. 使用#ifndef 在一些情況下,一寫文件包含了其他文件,而其他文件又包含了更多的文件,這樣就有可能出現(xiàn),一個(gè)文件最終會(huì)包含多個(gè).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. 可以只使用命名空間中的特定一個(gè)函數(shù),而不使用命名空間中其他函數(shù)。這樣可以防止:當(dāng)兩個(gè)命名空間中同時(shí)含有相同的函數(shù)fun1,而你想分別調(diào)用兩個(gè)命名空間中的fun2,fun3。 如果此時(shí)你使用using namespace name1;using namespace name2;那么這時(shí)會(huì)造成fun1沖突;解決的方法: using name1:fun2 using name2:fun3但是如果using name1:fun1; using name2:fun1;將會(huì)編譯錯(cuò)誤。9. C+中數(shù)組作為形參其實(shí)跟傳引用相同,Java亦是如此10.C(#include)字符串中,每一個(gè)字符串最后都有一個(gè)”0”表示結(jié)束。所以應(yīng)該注意字符串的長(zhǎng)度。 char my_string20=”Hi there.” char my_string10;strcpy(my_string,”hello”);strncpy(my_string,”fjsdkfksdjfkfsdf”,9);/最多賦值9個(gè)字符包含0C+中字符操作類: #include11. 指針:變量的內(nèi)存地址。 指針可以存儲(chǔ)到一個(gè)變量中去。double *p;聲明可以容一個(gè)指向double數(shù)據(jù)類型變量的指針。&操作符 可以判斷一個(gè)變量的內(nèi)存地址,然后可以將其賦值給一個(gè)指針變量。 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論