第2章-開始學習C++_第1頁
第2章-開始學習C++_第2頁
第2章-開始學習C++_第3頁
第2章-開始學習C++_第4頁
第2章-開始學習C++_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2.1進入C++注意:大小寫敏感cout與COUTCOutCout是互不相同的幾個標志符程序2.1myfirst.cpp//myfirst.cpp--displaysamessage#include<iostream>//aPREPROCESSORdirectiveintmain()//functionheader{//startoffunctionbody usingnamespacestd;//makedefinitionsvisiblecout<<"ComeupandC++mesometime.";//messagecout<<endl;//startanewlinecout<<"Youwon'tregretit!"<<endl;//moreoutputreturn0;//terminatemain()}//endoffunctionbody1.2.1.1main()函數見14頁圖2.1函數頭intmain()返回類型:描述從函數返回給調用它的函數的信息函數名:函數名字形參列表:從調用函數傳遞給被調用函數的信息通常被啟動代碼調用,啟動代碼是由編譯器添加到程序中的,程序和操作系統(tǒng)的橋梁,此處描述了程序和操作系統(tǒng)之間的接口main():默認返回int,C++不提倡,有些編譯器不支持;intmain(void)void表明不接受任何參數,在C++中,()與(void)等效;voidmain(),不返回值,但有些系統(tǒng)不能工作,要避免使用這種形式。如果main函數末尾沒有寫return語句,則默認包含了return0;C++必須包含一個main()函數2.2.1.2C++注釋//,為程序員提供說明,編譯器忽略提倡使用注釋來對程序作說明,程序越復雜,注釋的價值越大,不僅有助于他人理解,也有足于自己隔了一段時間之后對程序的理解/**/3.2.1.3C++預處理器和iostream文件#inlcude<iostream>,該編譯指令導致預處理器將iostream文件的內容添加到程序中。Iostream文件提供了程序與外界的通信。Io指輸入輸出。#inlcude編譯指令導致iostream文件的內容隨源代碼發(fā)送給編譯器,iostream文件的內容將取代程序中的代碼行#inlcude<iostream>。使用cin輸入,使用cout輸出,則程序必須包含iostream文件(或iostream.h)4.2.1.4頭文件名Iostream這樣的包含文件也叫頭文件。C++對老式的C頭文件保留擴展名.h,而C++頭文件沒有擴展名。有些C頭文件被轉換為C++頭文件,去掉.h,在開始加上C,例如math.h變?yōu)閏math。頭文件命名約定如表2.1,17頁。C++頭文件可以包含名稱空間5.2.1.5名稱空間Usingnamespacestd;叫做using編譯指令名稱空間是為了使編寫江多個廠商已有的代碼組合起來的程序更簡單而設計的。類,函數和變量是C++的標準組件,都被放置在名稱空間中,如std::cout和coutUsingnamespacestd;使得std名稱空間中的所有名稱都可用,也可通過using聲明來做,如usingstd::cout;6.2.1.6使用cout進行C++輸出Cout<<“comeup”;””表示要打印的消息,是字符串信息;<<插入操作符,表示該語句把這個字符串發(fā)送給cout;cout是什么呢?是一個預定義對象,它知道如何正確顯示各種類型的數據。如圖2.2,18頁<<的不同含義,編譯器通過不同的上下文來確定操作符的含義,就是一個操作符重載的例子??刂品鹐ndl:定義于iostream中,位于std,重起一行\(zhòng)n換行符,如果輸出字符串,通常使用這種方式。其他情況則使用endl7.2.1.7C++源代碼的格式化分號表示語句的結束,可以每條語句一行,也可以多條語句一行不能把空格、制表符、回車放在元素中間,也不能把回車符放在字符串中間標記和空白:一行代碼中不可分割的元素叫做標記。空格、制表符、回車叫做空白,通常要用空白將兩個標記分開,但有些字符不需要空白分開,如函數名與()。圖2.38.C++源代碼風格每行一條語句每個函數都有一個開始{和一個結束},各占一行函數中的語句相對{進行縮進與函數名稱相關的()周圍沒有空白9.2.2C++語句程序2.2carrot.cpp//carrots.cpp--foodprocessingprogram//usesanddisplaysavariable#include<iostream>intmain(){ usingnamespacestd;

intcarrots; //declareanintegervariable

carrots=25; //assignavaluetothevariable cout<<"Ihave"; cout<<carrots; //displaythevalueofthevariable cout<<"carrots."; cout<<endl; carrots=carrots-1; //modifythevariable cout<<"Crunch,crunch.NowIhave"<<carrots<<"carrots."<<endl; return0;}10.2.2.1聲明語句和變量存儲信息在計算機中,必須指出信息存放位置和所需的空間。Intcarrots;表示分配一個空間用來存放一個整數,名稱carrots標志存儲在該內存單元中的值,carrots稱為變量,他的值可以被修改。C++中所有變量都必須聲明。強制聲明,可以幫助提前發(fā)現錯誤。如圖2.4此種叫做定義聲明。他將導致編譯器為變量分配內存空間。還有一類聲明叫做引用聲明,不引起內存分配。C++聲明可以放在使用前的任何地方。11.2.2.2賦值語句Carrots=25;可以連續(xù)使用,a=b=c=d=23;也可以Carrots=Carrots-1;表示計算機使用Carrots-1得到一個新值,然后放到Carrots對應的內存單元12.2.2.3cout的新花樣Cout<<Carrots;打印非字符串可以和c的printf()進行對比13.2.3其他C++語句程序2.3getinfo.cpp//getinfo.cpp--inputandoutput#include<iostream>intmain(){ usingnamespacestd;

intcarrots;

cout<<"Howmanycarrotsdoyouhave?"<<endl; cin>>carrots;//C++input cout<<"Herearetwomore."; carrots=carrots+2;//thenextlineconcatenatesoutput cout<<"Nowyouhave"<<carrots<<"carrots."<<endl; return0;}14.2.3.1使用cinCin>>carrots;和cout相似,cin也是一個智能對象,將接受到的字符串轉換為需要的數據類型15.2.3.2使用cout進行拼接Cout<<“”<<“”<<carrots<<“”<<endl;16.2.3.3類簡介類是用戶定義的一種數據類型,定義類需要描述他能夠表示什么信息和可對數據執(zhí)行哪些操作。類與對象就像類型和變量之間的關系。類描述了一種數據類型的全部屬性,對象是根據這些描述創(chuàng)建的實體.類可以自定義,也可以來自類庫。如ostream和istream,定義與iostream文件中.C++提供了兩種發(fā)送消息的方法,一種是使用類方法,一種是重定義操作符。Cin.get()cin>>carrots表示兩種調用方式。如圖2.517.2.4函數函數用于創(chuàng)建c++的模塊。函數分為兩種:有返回值和沒有返回值的??梢允褂脦旌瘮?,也可以自定義。18.2.4.1使用有返回值的函數程序2.4sqrt.cpp//sqrt.cpp--usethesqrt()function#include<iostream>#include<cmath>//ormath.hintmain(){ usingnamespacestd;

doublearea; cout<<"Enterthefloorarea,insquarefeet,ofyourhome:"; cin>>area; doubleside; side=sqrt(area); cout<<"That'stheequivalentofasquare"<<side <<"feettotheside."<<endl; cout<<"Howfascinating!"<<endl; return0;}19.2.4.1使用有返回值的函數函數生成一個可賦給變量的值函數調用如圖2.6,26頁X=sqrt(6.25),()中的值時發(fā)送給函數的信息,叫做實參值使用函數前,編譯器必須知道函數的參數類型和返回值類型。C++提供這種信息的方式是使用函數原型語句。Doublesqrt(double);函數原型對于函數就像變量聲明對于變量。這里在函數頭文件里定義了原型。注意區(qū)分函數原型和函數定義!創(chuàng)建變量的同時賦值叫做初始化,28頁20.2.4.2函數變體多個參數的函數:函數的多個參數間用逗號分開;不接受任何參數的函數:函數調用必須包括(),即使沒有參數;沒有返回值void。沒有返回值的函數不能放在賦值語句或其他表達式中,舉例說明。21.2.4.3用戶定義的函數程序2.5outfunc.cpp//ourfunc.cpp--definingyourownfunction#include<iostream>voidsimon(int);//functionprototypeforsimon()intmain(){usingnamespacestd;simon(3);//callthesimon()functioncout<<"Pickaninteger:";intcount;cin>>count;simon(count);//callitagaincout<<"Done!"<<endl;return0;}voidsimon(intn)//definethesimon()function{usingnamespacestd;cout<<"Simonsaystouchyourtoes"<<n<<"times."<<endl;}//voidfunctionsdon'tneedreturnstatements

22.2.4.3用戶定義的函數使用方法和庫函數相同,必須提供原型,定義和調用。聲明一般放在main前,定義放在main函數之后(為了突出main函數,突出程序的結構),注意函數不能嵌套定義,一個函數不能包含另一個函數的定義。定義如圖2.8需要知道函數格式和函數圖23.關鍵字c++專用,不能用作它用的詞匯,例如return是一個關鍵字,不能將return用作一個變量名。ReturnreturnValue就不是關鍵字。關鍵字不用做變量名,函數名等24.2.4.3用戶定義的函數//ourfunc.cpp--definingyourownfunction#include<iostream>voidsimon(int);//functionprototypeforsimon()intmain(){usingnamespacestd;simon(3);//callthesimon()functioncout<<"Pickaninteger:";intcount;cin>>count;simon(count);//callitagaincout<<"Done!"<<endl;return0;}voidsimon(intn)//definethesimon()function{usingnamespacestd;cout<<"Simonsaystouchyourtoes"<<n<<"times."<<endl;}//voidfunctionsdon'tneedreturnstatements25.2.4.4用戶定義的有返回值的函數程序2.6convert.cpp//convert.cpp--convertsstonetopounds#include<iostream>intstonetolb(int);//functionprototypeintmain(){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論