這裏是我做了什麼: 我有一個簡單的類:在C++中,對象可以爲null嗎?
class Person{
public:
Person();
}
And in my main:
int main() {
Person myPer = NULL;
}
這是不可能的,因爲C++不允許,但是:
int main() {
Person* perPtr = NULL;
Person myPer = *perPtr; // corrected, it was &perPtr(typo error) before answers
}
編譯沒有問題,當我看到我確實能夠有一個NULL對象。那麼是不是違反了C++中只有指針可以爲空的規則?或者在C++中是否有這樣的規則? 第二個是我寫這段代碼之後,我添加了一個if語句來檢查myPer是否爲NULL,但是這給了我錯誤。那麼它是否表明C++並不真正喜歡NULL對象的想法,無論你如何做對象NULL ...
'Person myPer =&perPtr;'是一個類型錯誤。你是不是指'Person myPers = * perPtr;'? – delnan
歡迎來到Stack Overflow!如果你正在學習C++,我會給你這個最重要的提示:僅僅因爲它編譯它並不意味着它是有效的或它應該工作。同樣,僅僅因爲它按照您的預期編譯和運行,並不意味着它也是正確的。是的,C++是一個非常苛刻的語言:(我會推薦[很好的介紹C++書](http://stackoverflow.com/q/388242/46642)。 –
「這編譯好」。不,它不。請複製粘貼(而不是重新輸入)你編譯的程序。 –