- 后臺開發:核心技術與應用實踐
- 徐曉鑫
- 1365字
- 2019-01-03 20:55:31
1.1 第一個C++程序
剛開始接觸一門編程語言,一般會從寫一個輸出Hello world的程序開始。
【例1.1】 用程序輸出Hello world。
#include<iostream> using namespace std; int main() { cout<<"Hello world."<<endl; return 0; }
把上述程序編寫在一個叫helloworld.cpp的文件中,并將它放到Linux機器上的某個目錄下,執行g++helloworld.cpp命令,會在該目錄下生成a.out文件。執行./a.out命令,即可得到輸出結果:Hello world.。
先看程序的第一行(#include<iostream>),這不是一個C++語句,是一個預處理語句,編譯器的預處理器把輸入輸出流的標準頭文件包括在本程序中,所以不需要在句末加分號(;)。include一個文件,就是把這個文件的所有內容都加進來。圖1-1展示了包含文件的過程。

圖1-1 include文件的原理
如圖1-1所示,include一個.h文件,就是等于把整個.h文件給復制到程序中,include一個.cpp文件也是如此。
除了#include<>的方式來包含一個頭文件,還會見到#include""的方式來包含一個頭文件。而#include<>與#include""的區別是:#include<>常用來包含系統提供的頭文件,編譯器會到保存系統標準頭文件的位置查找頭文件;而#include""常用于包括程序員自己編號的頭文件,用這種格式時,編譯器先查找當前目錄是否有指定名稱的頭文件,然后從標準頭目錄中進行查找。
還經常會看到#include<iostream>和#include<iostream.h>的使用。事實上,#include<iostream>和#include<iostream.h>是不一樣的,因為iostream和iostream.h是兩個不同的文件,前者沒有后綴。實際上,在你的編譯器include文件夾里面可以看到,兩個文件打開后,里面的代碼是不一樣的。后綴為.h的頭文件在C++標準已經明確提出不再支持了,早些的C語言為了實現將標準庫功能定義在全局空間里,聲明放在在帶.h后綴的頭文件里。C++標準為了和C語言區別開,也為了正確使用命名空間,規定頭文件不再使用后綴.h。因此,當使用<iostream.h>時,相當于在C中調用庫函數,使用的是全局命名空間,也就是早期的C++實現方法。換句話說,iostream是iostream.h的升級版,大部分的頭文件都有一個不帶.h擴展名的文件與之相對應。不過有個特例,<string>并非<string.h>的升級版。
再看程序的第二行:“using namespace std;”中使用了命名空間std。命名空間是為了讓大量類名共存而不至于引起沖突而設計的。C++標準函數庫的所有元素都被聲明在一個命名空間中,這就是std命名空間。為了能夠訪問它的功能,使用這條語句來表達將使用標準名空間中定義的元素。這條語句在使用標準函數庫的C++程序中頻繁出現,本書中大部分例子的代碼中也將用到它,需要注意的是,最好不要在頭文件中使用命名空間,否則容易造成命名沖突。
繼續看程序的第三行:“int main()”,這是主函數(main function)的起始聲明。主函數是所有C++程序的運行的起始點。不管它是在代碼的開頭、結尾還是中間,此函數中的代碼總是在程序開始運行時第一個被執行。main后面跟了一對圓括號(),表示它是一個函數。C++中所有函數都跟有一對圓括號(),括號中可以有一些輸入參數。如例1.1中顯示,主函數(main function)的內容緊跟在它的聲明之后,由花括號{}括起來。
程序的第四行:“cout<<"Hello world."<<endl;”是本程序中最重要。cout是C++中的標準輸出流(通常為控制臺,即屏幕),這句話把一串字符串(本例中為Hello World)插入到輸出流中。cout在的聲明在頭文件iostream中,所以要想使用cout必須將該頭文件包括在程序開始處。注意這個句子以分號結尾。分號標示了一個語句的結束,C++的每一個語句都必須以分號結尾。C++程序員最常犯的錯誤之一就是忘記在語句末尾寫上分號。
最后一行(return 0;)中返回語句(return)標志主函數main()執行結束,并將該語句后面所跟代碼(在本例中為0)返回。這是在程序執行沒有出現任何錯誤的情況下最常見的程序結束方式。在后面的例子中會看到所有C++程序都以類似的語句結束。
- SPSS數據挖掘與案例分析應用實踐
- OpenDaylight Cookbook
- Java入門經典(第6版)
- PyQt從入門到精通
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- JavaScript:Moving to ES2015
- Python編程實戰
- 高級語言程序設計(C語言版):基于計算思維能力培養
- 持續集成與持續交付實戰:用Jenkins、Travis CI和CircleCI構建和發布大規模高質量軟件
- Cocos2d-x by Example:Beginner's Guide(Second Edition)
- IoT Projects with Bluetooth Low Energy
- 創意UI Photoshop玩轉移動UI設計
- Java程序設計基礎(第6版)
- Application Development with Parse using iOS SDK
- Penetration Testing with the Bash shell