在Linux下寫C++程序,在命令行模式下,,建立后綴名為.cpp的文件,,按照從網(wǎng)上搜來的最簡(jiǎn)單程序?qū)懭耄?/STRONG> 在g++ 編譯命令下會(huì)出現(xiàn)“cout /endl 在此作用域尚未聲明” 解決辦法: #include
方法二:在使用cout時(shí)將cout替換為std::cout 一個(gè)是#include <iostream.h> 關(guān)于二者的差別: iostream.h為非法的輸入輸出流,.h的頭文件是C語(yǔ)言格式的,,由于當(dāng)時(shí)還沒有命名空間這個(gè)說法,,所以也就不存在std這個(gè)命名空間標(biāo)示符。所以用iostream.h也就用不著std或者using namespace std. iostream為標(biāo)準(zhǔn)輸入輸出流,它是C++規(guī)范的帶有命名空間的頭文件,它包含在std命名空間內(nèi),。 iostream流包含cin和cout輸入輸出流,,使用cout的時(shí)候前面必須加std 對(duì)于編碼,除了是否加std或者using namespace 之外,,其他編碼基本一樣,,對(duì)于不同平臺(tái),前者不可移植。 通告比較我們了解到iostream是C++格式的頭文件,,而iostream.h是C語(yǔ)言格式的頭文件,,由于C++格式的iostream是規(guī)范的帶有命名空間的頭文件,所以在使用iostream標(biāo)準(zhǔn)庫(kù)中的cout對(duì)象時(shí),,要加上命名空間標(biāo)示符std,而C格式的非標(biāo)準(zhǔn)的輸入輸出流iostream.h則不用. 命名空間這個(gè)新概念從C++開始才真正引入,,下面介紹命名空間的作用。 C++引入命名空間(namespace)的目的是為了減少和避免命名沖突,,程序較大時(shí),,就很難避免重名,特別是多人合作的情況下,。過去C語(yǔ)言中的解決方法是靠人為的注意,。并且加長(zhǎng)名字,避免重名,。這樣做會(huì)使得一些名字看上去沒有意義或者難以理解,,而程序員在寫程序時(shí),也會(huì)受這個(gè)問題的限制,,不能自由地命名自己使用的變量或者函數(shù),。通過使用namespace,可以解決這一問題,這就是C++引入namespace這個(gè)概念的好處. 舉一個(gè)形象的例子: 有兩個(gè)學(xué)生,,一個(gè)叫小王,,一個(gè)叫小李,他們都各自擁有一本相同的語(yǔ)文書,,為了區(qū)分這兩本書,,他們就要在書的封皮上寫上自己的名字---小王或者小李。同理,,我們調(diào)用cout對(duì)象時(shí)也要在前邊寫上cout所屬的命名空間"std::",而在代碼里加 using namespace std,就可以不用再加"std::",。但是最好的方法就是不用 using namespace std,而是用 using std::cout,這樣可以避免命名重復(fù),因?yàn)椴煌拿衷诓煌拿臻g內(nèi),,將它們都釋放出來時(shí),,若不小心會(huì)造成使用錯(cuò)誤庫(kù)函數(shù)中的對(duì)象的情況。 |
|