錯誤發生原因之首

2021-04-02 17:29:47 字數 595 閱讀 3579

昨天發生了乙個錯誤,錯誤的原因非常簡單就是因為,沒有初始化。《c++程式設計思想》提出了乙個觀點,大多數的錯誤都是因為沒有初始化。那麼,我們認為c++和c的乙個重要區別就是提供了類,而類的出現是為了聚合同類的資料和操作。但為什麼會有建構函式和析構函式呢?我覺得這就是c++的哲學了——為了規避初始化之痛。

我們知道區域性變數是不會預設初始化的。但對於類來說,我們通常有意識的在建構函式中初始化這些變數或者物件。注意,這裡是個關鍵,如果沒有特殊指定,建構函式會呼叫成員物件的預設建構函式,這裡就是關鍵所在了。對於基礎變數來說,是沒有所謂建構函式的,那麼這部分變數就必須在建構函式中顯示初始化。但我們認為這並不是特別容易出錯的地方。

那麼對於struct呢?c++中的struct,我們可以認為這就是乙個類,不同的只是這個類的預設物件許可權不同。對於struct的運用,我們通常沿襲了c的用法。我犯的錯誤是沒有初始化struct。養成乙個好習慣很重要,那麼對於c風格的struct,我們應該習慣用memset初始化一下,這能規避很多錯誤。呵呵,不用擔心這沒有問題,c風格的struct不存在隱含成員,所以一般不會造成錯誤。我相信virtual是很少出現在struct中的。

ok! 所以,最重要的原則——物件(變數,資源……)務必在使用前初始化。

死遞迴 「段錯誤」產生的可能原因之一

我和linux下的 段錯誤 的第一次邂逅是在前幾天,當我嘗試著去寫乙個控制台下的掃雷程式的時候。掃雷程式在這裡且不談演算法的優劣,個人認為關鍵的兩點乙個是給雷點周圍的點置上相應的雷數,另一點就是當點乙個非雷點時自己開連著的那一版非雷區。這裡的第二點我使用的是遞迴演算法。到目前為止,雖然我的簡單版程式...

VS發生RC1107錯誤的原因

最近mfc程式中,用vs的資源編輯開啟時,老是發生 fatal error rc1107 invalid usage use rc for help 這種錯誤,記得前幾天解決過一次,但是當時忘了怎麼解決的了。今天每建乙個新的工程都遇到這個問題,鬱悶壞了,只有放狗搜了,搜到的2個地方 主要是第乙個帖子...

電腦「藍屏」原因之速查手冊

宕機是令操作者頗為煩惱的事情。宕機時的表現多為 藍屏 無法啟動系統,畫面 定格 無反應,滑鼠 鍵盤無法輸入,軟體執行非正常中斷等。儘管造成宕機的原因很多,但是萬變不離其宗,其原因永遠也脫離不了硬體與軟體兩方面。由硬體原因引起的宕機 散熱不良 顯示器 電源和cpu在工作中發熱量非常大,因此保持良好的通...