使用C++語(yǔ)言編程學(xué)習(xí)切磋
那天買了本C++ PRIMER ,通過(guò)仔細(xì)的學(xué)習(xí)了解了一點(diǎn)點(diǎn)linux下的編程,這也是我很久以前想學(xué)的,現(xiàn)在就開(kāi)始進(jìn)行學(xué)C++語(yǔ)言進(jìn)行詳細(xì)學(xué)習(xí)分析,好了現(xiàn)在就讓我們探索C++語(yǔ)言的奧秘吧。
Linux下的C++基本是遵循ISO/IEC 14882:2003標(biāo)準(zhǔn)的,亦即標(biāo)準(zhǔn)C++語(yǔ)言,如果你指的是多個(gè)模塊,那么很簡(jiǎn)單,應(yīng)該和VC++沒(méi)啥區(qū)別,在一個(gè)頭文件(.h)里聲明一些函數(shù)、類和變量,在另外兩個(gè)模塊里include這個(gè)頭文件,其中一個(gè)定義聲明的函數(shù),另外一個(gè)可以調(diào)用聲明的函數(shù),當(dāng)然,更多模塊也是一樣的。
如果你指的是鏈接庫(kù),windows下的動(dòng)態(tài)鏈接庫(kù)是.dll,linux下是.so(靜態(tài)鏈接庫(kù)是.a),那么linux下更簡(jiǎn)單,只要把定義函數(shù)的那個(gè)模塊單獨(dú)編譯就好了。即假設(shè)有三個(gè)模塊:main.cpp、hello.cpp、helllo.h,其中helllo.h聲明了hello()這個(gè)函數(shù),hello.cpp定義了這個(gè)函數(shù),而main.cpp調(diào)用這個(gè)函數(shù)那么可以這樣編譯:
- g++ -shared hello.cpp -o libhello.so
- g++ -L./ -lhello main.cpp -o main.out
其中,-shared表示編譯成動(dòng)態(tài)鏈接庫(kù);-L.\表示在當(dāng)前目錄下尋找需要鏈接的庫(kù)(.表示當(dāng)前目錄);-lhello表示編譯器查找動(dòng)態(tài)連接庫(kù)時(shí)有隱含的命名規(guī)則,即在給出的名字前面加上lib,后面加上.so來(lái)確定庫(kù)的名稱。當(dāng)然第二條命令也可以寫成:
我知道的大概就是這樣。至于C:B這個(gè)IDE沒(méi)用過(guò),應(yīng)該可以在某個(gè)地方設(shè)置編譯選項(xiàng),事實(shí)上,就筆者的周圍環(huán)境來(lái)看,也的確如此,雖然這個(gè)增長(zhǎng)的速度沒(méi)有Java等語(yǔ)言快,但是使用C++的程序員人數(shù)仍然在增長(zhǎng)。這說(shuō)明,C++語(yǔ)言仍然跟得上“潮流”,仍然能夠滿足程序員和實(shí)際應(yīng)用的需要。
目前,在Web開(kāi)發(fā)上,C++沒(méi)有多大的市場(chǎng)。在企業(yè)級(jí)的應(yīng)用上,以Java、.NET(C#是其中重要的一員)居多,C++仍然占有一席之地。在系統(tǒng)級(jí)的開(kāi)發(fā)上,C/C++應(yīng)用居多。這3種語(yǔ)言各有特色??偟膩?lái)說(shuō),C++的應(yīng)用集中在如下主要領(lǐng)域。
游戲:C++的效率是一個(gè)很重要的原因??茖W(xué)計(jì)算:在科學(xué)計(jì)算領(lǐng)域,F(xiàn)ORTRAN是使用最多的語(yǔ)言之一。但是近年來(lái),C++憑借先進(jìn)的數(shù)值計(jì)算庫(kù)、泛型編程等優(yōu)勢(shì)在這一領(lǐng)域也應(yīng)用頗多。#t#
網(wǎng)絡(luò)軟件:C++擁有很多成熟的用于網(wǎng)絡(luò)通信的庫(kù),其中***有代表性的是跨平臺(tái)的、重量級(jí)的ACE庫(kù),該庫(kù)可以說(shuō)是C++語(yǔ)言最重要的成果之一,在許多重要的企業(yè)、部門甚至是軍方都有應(yīng)用。
分布式應(yīng)用。操作系統(tǒng):在該領(lǐng)域,C++語(yǔ)言是主要使用的編程語(yǔ)言。但是C++憑借其對(duì)C的兼容性,面向?qū)ο笮再|(zhì)也開(kāi)始在該領(lǐng)域嶄露頭角。設(shè)備驅(qū)動(dòng)程序:也是因?yàn)樾实脑颉R苿?dòng)(手持)設(shè)備。嵌入式系統(tǒng)。教育與科研。部分行業(yè)應(yīng)用。其他應(yīng)用。