- C++面向對象程序設計
- 杜茂康等編著
- 1534字
- 2019-01-01 05:54:50
1.4 C++程序的結構
C++兼容C程序設計,它們的程序結構大致相同,常由以下3部分內容構成。
(1)聲明部分
聲明部分常包括:頭文件包含、全局變量或全局常量的聲明、函數聲明等內容。
C++編譯系統(或其他軟件提供者)提供了許多具有不同功能的函數,這些函數常被分為聲明(即函數頭,包括函數返回類型、函數名、形參表)和實現(即實現函數功能的程序代碼)兩部分,函數聲明常以源代碼的方式被集中放置在頭文件中,實現代碼則被編譯成二進制代碼的形式存放在各種不同的庫文件中。在C++程序中,用#include宏將頭文件包含到程序中,并按頭文件中的函數聲明提供函數參數,就能引用該函數的功能,這就是在C++程序的聲明部分包含頭文件的原因。
為了提高程序的可讀性,常將函數定義放在主函數(即main())后面。在C++中,如果函數的調用先于其定義,就必須在聲明部分對該函數進行聲明,告訴C++編譯系統此函數的定義在后面,這樣它才能被調用。今后還會發現,聲明部分常常包括類的聲明。
此外,聲明部分還常用來定義本程序要用到的全局變量和符號常量。
(2)主函數部分
同C語言一樣,C++程序的主函數也是main,它是程序執行的起點和主體。C++程序從main()函數的第一條語句開始,順序執行main()函數中的程序代碼,執行完main()函數中的全部語句后,程序就結束了。一個函數若想被執行,只有被main()函數直接或間接調用才行。
(3)函數定義部分
函數定義部分用來定義函數的功能,所有在前面只做了聲明的函數都必須在此進行定義,即編寫相關函數的程序代碼。
現在,來看一個簡單的C++程序,借此了解C++程序的一般結構。該程序接收從鍵盤輸入的10個整數,并按從大到小排序輸出。
【例1-1】 一個簡單的排序程序
說明:程序代碼前面的行號是為了分析問題而添加的。
① C++源文件類型名。C語言程序文件的類型名是 .C,C++程序文件的類型名是 .cpp。第0行指出本程序的源文件名是Eg1-1.cpp。
② C++注釋語句與語句結束符。C++支持C語言的注釋語句,即寫在/* 和 */之間的內容被視為注釋。C++還增加了一個行注釋符//,它可以出現在一個語句行的任何位置,其有效范圍是從它開始到該行結束。/* 和 */常用來對多行進行注釋,即寫在/* 和 */標記之間的全部內容都是注釋,所以常稱它為塊注釋語句。
同C語句一樣,C++程序中也用“;”表示一條語句的結束。
③ C++的數據輸入與輸出。在C++中常用cin輸入數據,用cout輸出數據,它們是在iostream.h中定義的。
第1行是一條預編譯命令,其作用是將頭文件iostream.h的內容包含(即添加)到本程序中。當調用cin和cout命令時,C++就知道在iostream.h中去尋找它們的函數定義了。
第8行的cout表示輸出。語句“cout<<"input 10 numbers: \n";”用來把“<<”后面的“input 10 numbers: \n”輸出到顯示器屏幕上,提示用戶輸入10個數字。該字符串最后的“\n”與C語言中的含義一樣,是個轉義符,表示回車換行的意思。最后的分號是語句結束符。
第10行中的cin用于接收從鍵盤輸入的數據。語句“cin>>a[i];”用來把鍵盤輸入的數據存入數組元素a[i]中。第9~10行構成的for循環用于從鍵盤輸入10個整數到數組a中。
第28行的“cout<<a[i]<<" ";”則用于輸出數組元素a[i],緊接在數組元素后面又輸出了一個空白,用于間隔各數組元素。第27~28行構成一個for循環,用于連續輸出a數組的10個元素,各數組元素之間用空白間隔。第29行“cout<<endl;”語句中的endl相當于“\n”,用于在屏幕上輸出一個回車換行符。
④ 函數聲明與函數定義。第11行調用冒泡法排序函數sort()對a數組排序。
第3行是函數sort()的向前引用聲明。本程序在main()函數中調用sort()時(第11行),還沒有定義sort(),所以在第3行中進行了聲明,void表示該函數不返回任何值。同理理解第4行。
第15~24行是冒泡法排序函數sort()的定義,第26~30行是函數print()的定義。
⑤ 主函數。第6~13行是main()函數。同C程序一樣,每個C++程序必須有一個名字為main的主函數,它是程序執行的起點。寫在main后面一對{}中的所有程序代碼構成了main()的函數體。
運行該程序,當看見屏幕上顯示“input 10 numbers:”時,從鍵盤輸入10個整數,輸入一個數據后按空格鍵(也可按Enter鍵),10個數據輸入完成后,程序將會把它們按從大到小順序排列輸出。運行結果如下所示:
說明:上述第2行是從鍵盤輸入的數據,輸入完按Enter鍵,第3行是程序輸出的結果。