1.資料類型和變數
C++ 中的變數類型與Java很相似。像Java一樣,C++ 有int 和 double 類型。但是這些數字類型的取值範圍是依賴於機器的。比如在16位系統上,例如運行DOS 或Windows 3.x的PC機上,int 是雙位元組(2-byte)的,取值範圍比Java的4-byte的int 要小很多。在這些機器上,如果 int 不夠用的話,你需要使用長整型long.
C++ 有 short 和 unsigned 類型來更有效儲存數字。(我認為所謂有效是指更高的空間利用率。) 最好是盡量避免使用這些類型除非是空間利用的有效性對你的系統真的非常重要。
在C++中布爾型用 bool 表示,而不像在Java中用boolean.
C++ 中字串類型用 string 表示。它與Java中的String 類型非常相似,但是,還是要逐一以下幾點不同之處:
1.C++ 字串儲存ASCII 碼字元,而不是標準碼Unicode 字元
2.C++ 字串是可以被修改的,而Java字串的內容是不可修改的(immutable)。
3.取子字串的操作在 C++ 中叫做substr,這個命令s.substr(i, n) 從字串s中取得從位置 i 始長度為n的子字串。
4.在C++中,你只能夠將字串與其它字串對象相串聯(concatenate),而不能夠與任意的對象相串聯。
5.C++中可以直接使用關係操作符 ==、 !=、 <、 <=、 >、 >= 來進行字串比較,其中後面四個操作符是按字母順序進行比較的。 這比Java中使用函數equals和compareTo來比較要方便很多。
2.變數和常量
在C++中,本地變數的定義看起來與Java中相同,例如:
int n = 5;
實際上這正是C++和Java的一個重要不同之處。C++編譯器不對本地變數進行初始化檢驗,所以在C++中很容易忘記初始化一個變數,這種情況下,變數的值該變數所佔記憶體地區中剛好當前存在隨機值。這顯然是很容易產生程式出錯的地方。
與Java一樣, C++中類可以有資料域和靜態變數。不同的是,C++中變數可以在函數甚至是類的外面定義,這些所謂的全域變數可以在程式的任何函數中被訪問,因而不易被很好的管理。所C++中應該盡量避免使用全域變數。
在C++中,常量可以在任何地方被定義(記得在Java中,常量必須是類的待用資料static data)。 C++ 使用關鍵字 const 來定義常量,而Java中是 final。例如:
const int DAYS_PER_YEAR = 365;