第1章 C++相關知識
本章首先復習C++程序結構、三種C++預處理命令、異常處理的一種結構化形式的描述機制和有關面向對象程序設計中的一些基本概念。為學習Qt進行必要的準備。
1.1 C++程序結構
一個程序是由若干個程序源文件組成的。為了與其他語言相區別,每一個C++程序源文件通常以.cpp為擴展名,由編譯預處理指令、數據或數據結構定義以及若干個函數組成。代碼中,main()表示主函數。無論該函數在整個程序中的哪個位置,每一個程序執行時都必須從main()函數開始,因此,每一個C++程序或者由多個源文件組成的C++項目都必須包含一個且只有一個main()函數。
下面舉一個簡單的C++程序例子Ex_Simple來說明一下:

其中:
● 行號為3的代碼是C++文件包含#include的編譯指令,稱為預處理指令。
#include后面的iostream.h是C++編譯器自帶的文件,稱為C++庫文件,它定義了標準輸入/輸出流的相關數據及其操作。由于該程序中用到了輸入/輸出流對象cin和cout,因而需要用#include將其合并到該程序中,又由于它們總是被放置在源程序文件的起始處,所以這些文件被稱為頭文件(Header File)。C++編譯器自帶了許多這樣的頭文件,每個頭文件都支持一組特定的“工具”,用于實現基本輸入輸出、數值計算、字符串處理等方面的操作。
由于iostream.h是C++的頭文件,因此這些文件以“.h”為擴展名,以便與其他文件類型相區別,但這是C語言的頭文件格式。盡管ANSI/ISO C++仍支持這種頭文件格式,但已不建議再采用,即包含頭文件中不應再有.h這個擴展名,而應使用C++的iostream。例如:
#include <iostream>
但為了使iostream中的定義對程序有效,還需使用下面名稱空間編譯指令來指定:
using namespace std; // 注意不要漏掉后面的分號
using是一個在代碼編譯之前處理的指令。namespace稱為名稱空間,它是ANSI/ISO C++一個新的特性,用于解決在程序中同名標識存在的潛在危機。
● 上述程序Ex_Simple中的“/*...*/”之間的內容或“//”開始一直到行尾的內容是用來注釋的,其目的只是為了提高程序的可讀性,對編譯和運行并不起作用。正是因為這一點,所注釋的內容既可以用漢字來表示,也可以用英文來說明,只要便于理解就行。
需要說明的是,C++中的“/*...*/”用于實現多行的注釋,它將由“/*”開頭到“*/”結尾之間所有內容均視為注釋,稱為塊注釋。塊注釋(“/*...*/”)的注解方式可以出現在程序中的任何位置,包括在語句或表達式之間。而“//”只能實現單行的注釋,它是將“//”開始一直到行尾的內容作為注釋,稱為行注釋。
- Qt 5 and OpenCV 4 Computer Vision Projects
- GAE編程指南
- Java從入門到精通(第4版)
- 物聯網系統開發:從0到1構建IoT平臺(第2版)
- C語言最佳實踐
- Mastering Ubuntu Server
- MATLAB實用教程
- CouchDB and PHP Web Development Beginner’s Guide
- Getting Started with NativeScript
- Quantum Computing and Blockchain in Business
- Unity 3D腳本編程:使用C#語言開發跨平臺游戲
- Mastering Python Design Patterns
- R語言數據可視化:科技圖表繪制
- 網絡數據采集技術:Java網絡爬蟲實戰
- JavaWeb從入門到精通(視頻實戰版)