在C 進行物件導向程式設計時,遇到與預設建構子相關的錯誤並不罕見。本綜合指南將幫助您理解並解決「類別不存在預設建構子」問題。
嘗試實例化時出現「類別不存在預設建構子」錯誤類別的對象,而不向其建構函式提供必要的參數。預設建構函數是一個特殊的成員函數,在未指定參數時,它使用預設值初始化物件。
此錯誤最常見的原因是當類別被使用一個或多個建構子定義,但缺少預設建構子。一旦類別定義了任何建構函數,編譯器將不會自動產生預設建構函數。
要解決此錯誤,您有以下三個選項:
1 。定義預設建構子:
您可以在類別中定義一個不帶任何參數的預設建構函數,如下面修正後的類別所示:
class GameCryptography { public: Blowfish _blowfish; GameCryptography(); void Decrypt(unsigned char packet[]); void Encrypt(unsigned char packet[]); Blowfish Blowfish; void SetKey(unsigned char k[]); void SetIvs(unsigned char i1[],unsigned char i2[]); };
2.向現有建構函式提供參數:
實例化物件時,可以明確地向建構函式提供所需的參數,從而無需使用預設建構子。
3.使用「nullptr」初始化器:
此選項僅適用於C 20,讓您在不明確定義預設建構子的情況下將物件初始化為nullptr :
GameCryptography* gc = nullptr;
a.指定演算法:
需要注意的是,ECB 和 CBC 等操作模式本身並不被視為演算法。如此提及它們可能會導致誤解。
b。編譯時錯誤與執行時錯誤:
預設建構子錯誤通常在編譯時被偵測到。這與程式執行過程中發生的運行時錯誤相反。
透過了解本指南中提供的原因和解決方法,您可以有效解決在使用時出現「類別不存在預設建構子」的錯誤C 類別。
以上是為什麼 C 會拋出「類別不存在預設建構函式」錯誤,以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!