最近剛剛得到的反饋代碼審查,說明未初始化變量的不當行爲,我的類變量初始化現在看來很醜陋:初始化變量 - 爲什麼以及有什麼風險?
class MyClass
{
private:
int variable_one;
int variable_two;
int variable_three;
MyClass():variable_one(0),variable_two(0),variable_three(0){};
//...
};
此前,直到需要時我不會定義我的變量:
class MyClass
{
private:
int variable_one;
void MyFunction(int x)
{
variable_one = x;
}
};
爲什麼我的第二個例子皺起了眉頭?機器人初始化變量涉及哪些風險?
其他方法可能需要使用成員變量,它們不能保證調用順序。比對不起更安全。 –
由於在構造類變量時沒有設置理智值,因此可以取出垃圾值。如果用戶無法看到垃圾,那麼這並不重要。你的成員變量是私人的;在大綱班級中,班級以外的任何人都無法訪問它們。你可能確定,但似乎不太可能。您無法知道這些值是否已在所示的輪廓中設置。而不瞭解狀態是C++中最重要的犯罪。 –