[转载] java程序员快速学c++
參考鏈接: 如何成為一名優(yōu)秀的Java程序員
java程序員快速學(xué)c++? ?java程序員學(xué)cplus,其實(shí)大部分的語法是一樣的,但是對(duì)java程序員來將,還是有寫難點(diǎn)需要注意。看完這些還不能保證會(huì)寫c++程序,不過一般的程序可以看懂,要寫的話要多多練習(xí)。 ---這是一個(gè)學(xué)習(xí)筆記,作為自己學(xué)習(xí)的記錄,還沒有完成,在隨后的過程中進(jìn)行完善。? 一、頭文件部分: 1、cplus中的函數(shù)最好要先聲明,聲明最好要放入頭文件中,這樣在cpp中就可以不用管函數(shù)定義的位置,這時(shí)頭文件還類似于java中接口的作用; 2、全局變量在頭文件中聲明,聲明時(shí)有初始化的是定義聲明,其他聲明是引用聲明。C語言的所有文件之中,只能有一個(gè)定義聲明。變量一般不要定義在.h文件中。 3、定義聲明數(shù)組時(shí),應(yīng)用聲明最好不要用指針。連接程序并不把指針與數(shù)組等同,也不把他們當(dāng)做同一個(gè)定義,而是認(rèn)為是不相關(guān)的兩個(gè)定義。 4、寫類的聲明(包括類里面的成員和方法的聲明)、函數(shù)原型、#define常數(shù)等,但一般來說不寫出具體的實(shí)現(xiàn)。 5、在寫頭文件時(shí)需要注意,在開頭和結(jié)尾處必須按照如下樣式加上預(yù)編譯語句(如下): #ifndef CIRCLE_H #define CIRCLE_H //你的代碼寫在這里 #endif 這樣做是為了防止重復(fù)編譯,不這樣做就有可能出錯(cuò)。至于CIRCLE_H這個(gè)標(biāo)識(shí)任意取名,不過要唯一,標(biāo)識(shí)的命名規(guī)則一般是頭文件名全大寫,前后加下劃線,并把文件名中的“.”也變成下劃線。http://blog.csdn.net/Super_Level/article/details/21299481 比如你有兩個(gè)C文件,這兩個(gè)C文件都include了同一個(gè)頭文件。而編譯時(shí),這兩個(gè)C文件要一同編譯成一個(gè)可運(yùn)行文件,于是問題來了,大量的聲明沖突。頭文件的內(nèi)容放在這里后,沖突問題編譯器就可以解決。 6、源文件主要寫實(shí)現(xiàn)頭文件中已經(jīng)聲明的那些函數(shù)的具體代碼。需要注意的是,開頭必須#include一下實(shí)現(xiàn)的頭文件,以及要用到的頭文件。那么當(dāng)你需要用到自己寫的頭文件中的類時(shí),只需要#include進(jìn)來就行了。http://blog.csdn.net/cyp331203/article/details/22606249 7、#define。C或C++語言源程序中允許用一個(gè)標(biāo)識(shí)符來表示一個(gè)字符串,稱為“宏”。被定義為“宏”的標(biāo)識(shí)符稱為“宏名”。在編譯預(yù)處理時(shí),對(duì)程序中所有出現(xiàn)的“宏名”,都用宏定義中的字符串去代換,這稱為“宏代換”或“宏展開”。宏定義是由源程序中的宏定義命令完成的。宏代換是由預(yù)處理程序自動(dòng)完成的。http://www.cnblogs.com/ben0721/articles/1938639.html “宏”分為有參數(shù)和無參數(shù)兩種。 #define 標(biāo)識(shí)符 字符串 #define 宏名(形參表) 字符串 “#”表示這是一條預(yù)處理命令。凡是以“#”開頭的均為預(yù)處理命令。“define”為宏定義命令。“標(biāo)識(shí)符”為所定義的宏名。“字符串”可以是常數(shù)、表達(dá)式、格式串等。 8、標(biāo)準(zhǔn)宏。 ANSI標(biāo)準(zhǔn)說明了五個(gè)預(yù)定義的宏名。它們是:__LINE__,__FILE__,__DATE__,__TIME__,__STDC__ C++中還定義了__cplusplus 如果編譯器不是標(biāo)準(zhǔn)的,則可能僅支持以上宏名中的幾個(gè),或根本不支持。記住編譯程序也許還提供其它預(yù)定義的宏名。 __LINE__及__FILE__宏指示,#line指令可以改變它的值,簡(jiǎn)單的講,編譯時(shí),它們包含程序的當(dāng)前行數(shù)和文件名。 __DATE__宏指令含有形式為月/日/年的串,表示源文件被翻譯到代碼時(shí)的日期。__TIME__宏指令包含程序編譯的時(shí)間。時(shí)間用字符串表示,其形式為:分:秒 __STDC__宏指令的意義是編譯時(shí)定義的。一般來講,如果__STDC__已經(jīng)定義,編譯器將僅接受不包含任何非標(biāo)準(zhǔn)擴(kuò)展的標(biāo)準(zhǔn)C/C++代碼。如果實(shí)現(xiàn)是標(biāo)準(zhǔn)的,則宏__STDC__含有十進(jìn)制常量1。如果它含有任何其它數(shù),則實(shí)現(xiàn)是非標(biāo)準(zhǔn)的。 __cplusplus與標(biāo)準(zhǔn)c++一致的編譯器把它定義為一個(gè)包含至少6為的數(shù)值。與標(biāo)準(zhǔn)c++不一致的編譯器將使用具有5位或更少的數(shù)值。可以定義宏,例如: 當(dāng)定義了_DEBUG,輸出數(shù)據(jù)信息和所在文件所在行。? ?二、源文件部分 1、\ 在cplus中表示該行沒有結(jié)束; 2、 #ifndef#define#endif實(shí)現(xiàn)條件編譯, #ifdef 標(biāo)識(shí)符? 程序段1? #else? 程序段2? #endif? 當(dāng)標(biāo)識(shí)符已經(jīng)被定義過(一般是用#define命令定義),則對(duì)程序段1進(jìn)行編譯,否則編譯程序段2。 這里的“程序段”可以是語句組,也可以是命令行。這種條件編譯可以提高C源程序的通用性。如果一個(gè)C源程序在不同計(jì)算機(jī)系統(tǒng)上系統(tǒng)上運(yùn)行,而不同的計(jì)算機(jī)又有一定的差異。http://blog.csdn.net/Super_Level/article/details/21299481? ?3、語言中的符號(hào)意義和部分關(guān)鍵字 ■->C++指針調(diào)用的意思。指向結(jié)構(gòu)體或者類指針用來引用對(duì)象里面變量時(shí)用。 ■::作用域,聲明該符號(hào)后面函數(shù)、數(shù)據(jù)等屬于哪個(gè)類,一般用于靜態(tài); ■:用于繼承父類: class lzbb:public lzb; lzb父類lzbb子類; c++支持多繼承; 基類和派生類構(gòu)造函數(shù):? 當(dāng)調(diào)用派生類時(shí)首先會(huì)執(zhí)行基類構(gòu)造函數(shù)執(zhí)行派生類構(gòu)造函數(shù)所我們想給基類構(gòu)造函數(shù)參數(shù)傳值也用冒號(hào):? 基類構(gòu)造函數(shù):lzb(int a){cout<派生類構(gòu)造函數(shù):lzbb(int a,int b);? 當(dāng)我們開始調(diào)用基類構(gòu)造函數(shù)首先調(diào)用了lzb我們給lzba賦值? 下寫法:lzbb::lzbb(int a,int b):lzb(a){cout<此時(shí)我們傳實(shí)參時(shí)首先會(huì)把a(bǔ)值賦值給lzba輸出b等于傳入給b實(shí)參值; http://zhidao.baidu.com/question/2951346.html ■.對(duì)象中的成員,用于非靜態(tài)的調(diào)用。 ■typeof取表達(dá)式或表達(dá)式值的類型,和模板的配合使用比較多; ■typeid返回給一個(gè)type_info 定義過的對(duì)象的那個(gè)對(duì)象的類型; ■typedef允許你從一個(gè)現(xiàn)有的類型中創(chuàng)建一個(gè)新類型; ■typename能用來在中 template 描述一個(gè)未定義類型或者代替關(guān)鍵字class;? ?4、template <class T> 或template<typename T> class 標(biāo)明下面的參數(shù)是屬于什么類型的。這個(gè)在java中也是有的。 模板就是函數(shù)或類,模板可以解決同類型問題。(這塊內(nèi)容還是比較多,一筆帶過先)。? ?5、inline函數(shù)也所謂內(nèi)聯(lián)函數(shù),不建議多使用。? ??
6、指針是內(nèi)存單元的地址,數(shù)據(jù)是內(nèi)存單元的內(nèi)容。(未完!!)?
??
??
(未完!!)
總結(jié)
以上是生活随笔為你收集整理的[转载] java程序员快速学c++的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java instanceof 继承_J
- 下一篇: python你是否也走进了这个误区了_P