「Blowfish」クラスのデフォルト コンストラクターが見つかりません: エラーの理解
「クラス "Blowfish" にはデフォルト コンストラクターが存在しません」というエラーが発生するを必要とするコンストラクターを定義しているにもかかわらず、引数を指定せずに Blowfish クラスのインスタンスを作成しようとしたとき。 BlowfishAlgorithm 引数。
エラーの理由
デフォルトでは、クラスにコンストラクターがない場合、コンパイラーは引数をとらないデフォルトのコンストラクターを生成します。ただし、デフォルト以外のコンストラクター (引数が必要なコンストラクター) が定義されている場合、コンパイラーはコンストラクターの処理が開発者によって明示的に処理されると想定し、デフォルトのコンストラクターを自動的に生成しなくなります。したがって、クラスのインスタンスを作成するときに引数を指定することが必須になります。
解決策
このエラーを解決するには、いくつかのオプションがあります:
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 中国語 Web サイトの他の関連記事を参照してください。