如果我有一個類Rectangle爲什麼不訪問未初始化的指針顯示沒有錯誤?
class Rectangle{
private:
double width;
double height;
public:
void Set(double w , double l){
width = w;
height = l;
}
};
和我decleare一個物體,例如:
Rectangle *Obj;
,然後使用設定功能爲
Obj->Set(6.0, 9.0);
程序運行並顯示沒有錯誤,而根據我應該顯示錯誤,因爲我還沒有初始化指針。
C++在運行時不會跟蹤指針是否被初始化。如果設置了足夠高的警告級別,編譯器可能會提示您使用未初始化的變量。 –
不是。具體來說,如何處理未初始化的指針是由實現決定的。通常這個指針只包含堆棧中碰到的任何垃圾,如果它沒有指向任何致命的地方,那麼你很好。除非你不是。有些東西剛剛被粉碎,直到後來才發現。 – user4581301