「Blowfish」類別缺少預設建構子:理解錯誤
出現錯誤「類別「Blowfish」不存在預設建構子」儘管定義了需要BlowfishAlgorithm 的建構函數,但嘗試在不提供任何參數的情況下創建Blowfish類別的實例時
錯誤原因
預設情況下,當類別缺少建構子時,編譯器會產生一個不帶參數的預設建構子。但是,當定義非預設建構函式(即需要參數的建構函式)時,編譯器假定建構函式處理由開發人員明確處理,並且不再自動產生預設建構函式。因此,在建立類別的實例時必須提供參數。
解決方案
要解決此錯誤,您有多種選擇:
Blowfish() = default;
Blowfish blowfish(BlowfishAlgorithm::CBC);
class GameCryptography { public: GameCryptography(BlofishAlgorithm); // Constructor with argument // Generate a default constructor by delegating to the compiler GameCryptography() = default; };
附加說明
值得強調的是,ECB、CBC、CFB 等代表的模式加密演算法的操作而非加密演算法本身。雖然它不影響編譯,但這種語義錯誤可能會讓程式碼讀者感到困惑。
以上是為什麼我的程式碼拋出'類別'Blowfish'不存在預設建構函數”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!