如何保證C 建構函式的安全性

2021-06-26 22:09:20 字數 522 閱讀 5655

c++的建構函式是乙個比較特殊的函式,它執行乙個物件的生成過程。如果在建構函式裡面發生了異常,那麼析構函式是不會被主動呼叫的,那麼資料就得不到很好的清場,留下了乙個半死不活的殘留物。

class cmyobject

catch(...)

}}

這種做法是將異常交給了上一層來處理,同時自己又能夠及時清除記憶體。

另外常有人通過設定 init()和release()來解決清除記憶體的問題。如下:

class cmyobject

} bool init()

catch(...)

return true;

} bool release()

private:

csubobject* m_psubobj;

};

這種方案是解決了記憶體清場的問題,但是它並沒有丟擲異常,這樣會導致呼叫者並不知道構造是否已經成功,那麼有可能對後續的引用帶來致命的傷害。所以,個人感覺這種方案不夠安全。

如何保證資料安全性? 討論

1 是資料本身的安全。主要是指採用現代密碼演算法對資料進行主動保護,如資料保密 資料完整性 雙向強身份認證等 2 是資料防護的安全。主要是採用現代資訊儲存手段對資料進行主動防護,如通過磁碟陣列 資料備份 異地容災等手段保證資料的安全,資料安全是一種主動的包含措施,資料本身的安全必須基於可靠的加密演算...

ajax 如何保證資料的安全性

假如跨站偽造請求成功,怎麼保證 ajax 的資料安全性?答主 bumfod 說的確實有道理。crsf的成因在一定程度上確實是由於http有狀態的原因 cookie維持狀態 並不是我之前所說的是http無狀態的原因。在此如果有人被誤導,我表示抱歉。我們如果能驗證請求確實來是使用者確認 自願 發出的,而...

java 如何保證介面的安全性

根據使用者名稱或者使用者id,結合使用者的ip或者裝置號,生成乙個token。在請求後台,後台獲取http的head中的token,校驗是否合法 和資料庫或者redis中記錄的是否一致,在登入或者初始化的時候,存入資料庫 redis 在使用base64方式的編碼後,token字串還是有20多位,有的...