實際上這正是C++和Java的一個重要不同之處。C++編譯器不對本地變量進行初始化檢驗,所以在C++中很容易忘記初始化一個變量,這種情況下,變量的值該變量所占內存區域中剛好當前存在隨機值。這顯然是很容易產生程序出錯的地方。
與Java一樣, C++中類可以有數據域和靜態變量。不同的是,C++中變量可以在函數甚至是類的外面定義,這些所謂的全局變量可以在程序的任何函數中被訪問,因而不易被很好的管理。所C++中應該盡量避免使用全局變量。
在C++中,常量可以在任何地方被定義(記得在Java中,常量必須是類的靜態數據static data)。 C++ 使用關鍵字 const 來定義常量,而Java中是 final。例如:
const int DAYS_PER_YEAR = 365;
C++ 中對類的定義與Java有些不同,這裡是一個例子:一個C++ 版本的 Point 類:
class Point /* C++ */
{
public:
Point();
Point(double xval, double yval);
void move(double dx, double dy);
double getX() const;
double getY() const;
private:
double x;
double y;
};
這裡幾點重要的不同是:
1. C++的類定義中分為公共和私有部分,分別以關鍵字 public 和 private開始。而在Java中,每一個元素都必須標明 public 或 private。
2. C++中類的定義只包含函數的聲明,真正的實現另外單獨列出。
3. 訪問函數(accessor methods)標有關鍵字 const ,表明這個函數不會改變本對象的元素值。