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