第1章C++初步知識_第1頁
第1章C++初步知識_第2頁
第1章C++初步知識_第3頁
第1章C++初步知識_第4頁
第1章C++初步知識_第5頁
已閱讀5頁,還剩16頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第第1章章 C+的初步知識的初步知識1.1 C+概述概述1.2 面向過程的結構化程序設計方法面向過程的結構化程序設計方法1.3 面向對象的方法面向對象的方法1.4 簡單的簡單的C+程序程序1.5 C+程序的構成和書寫形式程序的構成和書寫形式1.6 C+程序的開發步驟及開發環境程序的開發步驟及開發環境1.1 C+概述概述lC+語言是在語言是在C語言的基礎上發展起來的,而語言的基礎上發展起來的,而C語言語言是在是在20世紀世紀70年代的年代的B語言基礎上開發出來的。語言基礎上開發出來的。lC語言同當時常用的其它高級語言一樣,都是語言同當時常用的其它高級語言一樣,都是面向面向過程過程的。的。lC+作

2、為作為C的繼承者,在支持面向過程的的程序設計的繼承者,在支持面向過程的的程序設計的同時,又可以進行以抽象數據類型為特點的基于的同時,又可以進行以抽象數據類型為特點的基于對象的程序設計,還可以進行以繼承和多態為特點對象的程序設計,還可以進行以繼承和多態為特點的的面向對象面向對象的程序設計。的程序設計。lC+是一種是一種程序設計語言。程序設計語言。C+標準標準lC+真正正式公布的標準就三個:真正正式公布的標準就三個:lC+98、C+03、C+11。l其中其中C+98是第一個正式是第一個正式C+標準,標準,C+03是在是在C+98上面進行了小幅度的修訂,上面進行了小幅度的修訂,C+11(2011年年

3、8月月12日公布)則是一次全面的大進化。日公布)則是一次全面的大進化。l其實其實C+在第一個標準在第一個標準C+98之前就已經廣為使用之前就已經廣為使用了。只不過那時候還沒有一個官方的統一標準,后了。只不過那時候還沒有一個官方的統一標準,后來才開始起草標準草案,直到來才開始起草標準草案,直到98年才最終發布。年才最終發布。1.2 面向過程的結構化程序設計方法面向過程的結構化程序設計方法l設計思路:設計思路: 采用模塊分解與功能抽象,自頂向下,逐步求精的設計方法。l程序結構:程序結構: 按功能劃分為若干個基本模塊,形成一個樹狀結構。 各模塊間的關系盡可能簡單,功能上相對獨立。 每一模塊內部均是由

4、順序、選擇和循環三種基本結構組成。 其模塊化實現的具體方法是使用子程序。l優點:優點: 有效地將一個復雜的程序系統設計任務分解成許多易于控制和處理的子任務,便于開發和維護。l缺點:缺點: 可重用性差,數據安全性差,難以開發圖形界面的應用。1.3 面向對象的方法面向對象的方法l面向對象方法的特點:面向對象方法的特點: 將數據及對數據的操作方法封裝在一起,作為一個相互依存,不可分離的整體對象。 對同類型對象抽象出其共性,形成類。 類通過一個簡單的外部接口與外界發生聯系。 對象與對象之間通過消息進行通訊。1.4 簡單的簡單的C+程序程序l#include /包含頭文件包含頭文件iostreamlus

5、ing namespace std; /*使用命名空間使用命名空間std*/lint main( )llcoutHello World!n;lreturn 0;llC+程序結構由程序結構由注釋注釋、編譯預處理編譯預處理和和程序主體程序主體組成。組成。l注釋有兩種形式:注釋有兩種形式:/、/*/ 。l每個以符號每個以符號“”開頭的行稱為編譯預處理行。開頭的行稱為編譯預處理行。l“include”稱為文件包含預處理命令,稱為文件包含預處理命令,“include ”的作用是在編的作用是在編譯之前將文件譯之前將文件“iostream”的內容增加(包含)到程序中,的內容增加(包含)到程序中,iostre

6、am是系統定義是系統定義的一個的一個“頭文件頭文件”,它設置了,它設置了C+的的I/O相關環境,定義輸入輸出流對象相關環境,定義輸入輸出流對象cout與與cin等。等。l“using namespace std”的意思是使用命名空間的意思是使用命名空間“std”。C+標準庫中的類和標準庫中的類和函數是在命名空間函數是在命名空間std中聲明的,因此程序中如果需要用到這些類和函數,就需中聲明的,因此程序中如果需要用到這些類和函數,就需要用要用“using namespace std; ”作聲明,表示要用到命名空間作聲明,表示要用到命名空間std中的內容。中的內容。l程序主體由一個或多個函數組成,有

7、且只有一個函數是程序執行的入口,這個程序主體由一個或多個函數組成,有且只有一個函數是程序執行的入口,這個函數稱為主函數(函數稱為主函數(main函數)。函數)。lmain函數的返回值函數的返回值l在標準在標準C+中,中,main函數的返回類型函數的返回類型必須必須為為int,這樣,這樣返回值才能傳遞給程序的激活者(如操作系統)。雖返回值才能傳遞給程序的激活者(如操作系統)。雖然在一些編譯器中,然在一些編譯器中,void main( ) 可以通過編譯(如可以通過編譯(如 vc6),但并非所有編譯器都支持),但并非所有編譯器都支持 void main ,如果,如果你想你的程序擁有很好的可移植性,你

8、想你的程序擁有很好的可移植性,請一定要用請一定要用 int main( )。l如果如果 main 函數的最后沒有寫函數的最后沒有寫 return 語句的話,語句的話,C+98規定編譯器要自動在生成的目標文件中(如規定編譯器要自動在生成的目標文件中(如 exe 文件)加入文件)加入return 0; ,表示程序正常退出,返回,表示程序正常退出,返回值非值非0則表示失敗。注意則表示失敗。注意vc6 也不支持這個特性,不也不支持這個特性,不會在目標文件中加入會在目標文件中加入return 0。例例 求求a和和b兩個數之和。兩個數之和。l/ 求兩數之和求兩數之和 (本行是注釋行本行是注釋行)l#inc

9、lude /預處理命令預處理命令lusing namespace std; /使用命名空間使用命名空間stdlint main( ) /主函數首部主函數首部l /函數體開始函數體開始lint a,b,sum; /定義變量定義變量lcinab; /輸入語句輸入語句lsum=a+b; /賦值語句賦值語句lcouta+b=sumendl; /輸出語句輸出語句lreturn 0; /如程序正常結束,向操作系統返回一個零值如程序正常結束,向操作系統返回一個零值l /函數結束函數結束例例 給兩個數給兩個數x和和y,求兩數中的大者。,求兩數中的大者。l#include /預處理命令預處理命令lusing n

10、amespace std;lint max(int x,int y); /聲明聲明max函數,函數值為整型,形式參數函數,函數值為整型,形式參數x,y為整型為整型lint main( ) /主函數主函數llint a,b,m; /變量聲明變量聲明lcinab; /輸入變量輸入變量a和和b的值的值lm=max(a,b); /調用調用max函數,將得到的值賦給函數,將得到的值賦給mlcoutmax=my) /if語句,如果語句,如果xy,則將,則將x的值賦給的值賦給z,否則,將,否則,將y的值賦給的值賦給zl z=x; lelsel z=y; lreturn(z); /將將z的值返回,通過的值返回

11、,通過max帶回調用處帶回調用處l /max函數結束函數結束例例 包含類的包含類的C+程序。程序。#include / 預處理命令預處理命令using namespace std;class Student / 聲明一個類,類名為聲明一個類,類名為Studentprivate: / 以下為類中的私有部分以下為類中的私有部分int num; / 私有變量私有變量numint score; / 私有變量私有變量scorepublic: / 以下為類中的公用部分以下為類中的公用部分void setdata( ) / 定義公用函數定義公用函數setdata cinnum; / 輸入輸入num的值的值c

12、inscore; / 輸入輸入score的值的值void display( ) / 定義公用函數定義公用函數displaycoutnum=numendl; / 輸出輸出num的值的值coutscore=scoreendl; /輸出輸出score的值的值; 在一個類中包含兩種成員: 數據和函數,分別稱為數據成員和成員函數。在C+中把一組數據和有權調用這些數據的函數封裝在一起,組成一種稱為“類(class)”的數據結構。數據成員是類的屬性,成員函數是用來對數據成員進行操作的。Student stud1,stud2; /定義定義stud1和和stud2為為Student類的變量,稱為對象類的變量,稱

13、為對象int main( ) / 主函數首部主函數首部stud1.setdata( ); / 調用對象調用對象stud1的的setdata函數函數stud2.setdata( ); / 調用對象調用對象stud2的的setdata函數函數stud1.display( ); / 調用對象調用對象stud1的的display函數函數stud2.display( ); / 調用對象調用對象stud2的的display函數函數return 0;程序運行情況如下:程序運行情況如下: 1001 98.5 (輸入學生輸入學生1的學號和成績的學號和成績)1002 76.5 (輸入學生輸入學生2的學號和成績的學

14、號和成績)num=1001 (輸出學生輸出學生1的學號的學號)score=98.5 (輸出學生輸出學生1的成績的成績)num=1002 (輸出學生輸出學生2的學號的學號)score=76.5 (輸出學生輸出學生2的成績的成績)具有“類”類型特征的變量稱為“對象”(object)。l在一個類中包含兩種成員:在一個類中包含兩種成員: 數據和函數,分數據和函數,分別稱為別稱為數據成員數據成員和和成員函數成員函數。在。在C+中把一中把一組數據和有權調用這些數據的函數封裝在一組數據和有權調用這些數據的函數封裝在一起,組成一種稱為起,組成一種稱為“類類(class)”的數據結構。的數據結構。l類可以體現數

15、據的封裝性和信息隱蔽。在上類可以體現數據的封裝性和信息隱蔽。在上面的程序中,在聲明面的程序中,在聲明Student類時,把類中的類時,把類中的數據和函數分為兩大類:數據和函數分為兩大類: private(私有的私有的)和和public(公用的公用的)。把全部數據。把全部數據(num,score)指指定為私有的,把全部函數定為私有的,把全部函數(setdata,display)指定為公用的。在大多數情況下,會把所有指定為公用的。在大多數情況下,會把所有數據指定為私有,以實現信息隱蔽。數據指定為私有,以實現信息隱蔽。1.5 C+程序的構成和書寫形式程序的構成和書寫形式lC+程序的結構和書寫格式歸納

16、如下:程序的結構和書寫格式歸納如下: l 一個一個C+程序可以由一個程序單位或多個程序單程序可以由一個程序單位或多個程序單位構成。每一個程序單位作為一個文件。在程序編位構成。每一個程序單位作為一個文件。在程序編譯時,編譯系統分別對各個文件進行編譯,因此,譯時,編譯系統分別對各個文件進行編譯,因此,一個文件是一個編譯單元一個文件是一個編譯單元。l 在一個程序單位中,可以包括以下幾個部分:在一個程序單位中,可以包括以下幾個部分: 預處理命令。上節4個程序中都包括#include命令。 全局聲明部分(在函數外的聲明部分)。在這部分中包括對用戶自己定義的數據類型的聲明和程序中所用到的變量的定義。 函數

17、。函數是實現操作的部分,因此函數是程序中必須有的和最基本的組成部分。每一個程序必須包括一個或多個函數,其中必須有一個(而且只能有一個)主函數(main函數)。 但是并不要求每一個程序文件都必須具有以上3個部分,可以缺少某些部分(包括函數)。l 一個函數由兩部分組成一個函數由兩部分組成: 函數首部,即函數的第一行。包括函數名、函數類型、函數屬性、函數參數(形參)名、參數類型。 一個函數名后面必須跟一對圓括號, 函數參數可以缺省,如int main( )。 函數體,即函數首部下面的大括號內的部分。如果在一個函數中有多個大括號,則最外層的一對 為函數體的范圍。 函數體一般包括:l局部聲明部分 (在函

18、數內的聲明部分)。包括對本函數中所用到的類型、函數的聲明和變量的定義。l對數據的聲明既可以放在函數之外(其作用范圍是全局的),也可以放在函數內(其作用范圍是局部的,只在本函數內有效)。l執行部分。由若干個執行語句組成,用來進行有關的操作,以實現函數的功能。l 語句包括兩類。一類是聲明語句,另一類是執行語句包括兩類。一類是聲明語句,另一類是執行語句。語句。 C+對每一種語句賦予一種特定的功能。語對每一種語句賦予一種特定的功能。語句是實現操作的基本成分,顯然,沒有語句的函數句是實現操作的基本成分,顯然,沒有語句的函數是沒有意義的。是沒有意義的。C+語句必須以分號結束。語句必須以分號結束。l 一個一

19、個C+程序總是程序總是從從main函數開始執行函數開始執行的,而不的,而不論論main函數在整個程序中的位置如何。函數在整個程序中的位置如何。l 類類(class)是是C+新增加的重要的數據類型,是新增加的重要的數據類型,是C+對對C的最重要的發展。有了類,就可以實現面向的最重要的發展。有了類,就可以實現面向對象程序設計方法中的封裝、信息隱蔽、繼承、派對象程序設計方法中的封裝、信息隱蔽、繼承、派生、多態等功能。在一個類中可以包括數據成員和生、多態等功能。在一個類中可以包括數據成員和成員函數,他們可以被指定為私有的成員函數,他們可以被指定為私有的(private)和公和公用的用的(public)

20、屬性。私有的數據成員和成員函數只能屬性。私有的數據成員和成員函數只能被本類的成員函數所調用。被本類的成員函數所調用。l C+程序書寫格式自由,一行內可以寫幾個語句,程序書寫格式自由,一行內可以寫幾個語句, 一個語句可以分寫在多行上一個語句可以分寫在多行上。C+程序沒有行號,程序沒有行號,也不像也不像FORTRAN或或COBOL那樣嚴格規定書寫格式那樣嚴格規定書寫格式(語句必須從某一列開始書寫語句必須從某一列開始書寫)。l 一個好的、有使用價值的源程序都應當加上必要一個好的、有使用價值的源程序都應當加上必要的注釋,以增加程序的可讀性。的注釋,以增加程序的可讀性。C+還保留了還保留了C語言語言的注

21、釋形式,可以用的注釋形式,可以用“/*/”對對C+程序中的任程序中的任何部分作注釋。在何部分作注釋。在“/*”和和“*/”之間的全部內容作為之間的全部內容作為注釋。注釋。l用用“/”作注釋時,有效范圍只有一行,即本行有效,作注釋時,有效范圍只有一行,即本行有效,不能跨行。而用不能跨行。而用“/*/”作注釋時有效范圍為多作注釋時有效范圍為多行。只要在開始處有一個行。只要在開始處有一個“/*”,在最后一行結束處,在最后一行結束處有一個有一個“*/”即可。因此,即可。因此,一般習慣是:一般習慣是: 內容較少的內容較少的簡單注釋常用簡單注釋常用“/”,內容較長的常用,內容較長的常用“/*/ ”。1.6 C+程序的開發步驟及開發環境程序的開發步驟及開發環境l開發步驟開發步驟l編輯編輯l把按照把按照

溫馨提示

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

評論

0/150

提交評論