エラー: 「クラス "Blowfish" にはデフォルトのコンストラクターが存在しません」
質問:
コンストラクター引数を明示的に指定せずに Blowfish クラスのオブジェクトをインスタンス化しようとすると、コンパイラは、「クラス "Blowfish" にはデフォルトのコンストラクターが存在しません。」というエラー メッセージを出力します。これはなぜ発生しますか?また、どうすれば解決できますか?
答え:
Blowfish クラスにデフォルトのコンストラクターが存在しないのは仕様です。クラスで単一のコンストラクターが定義されている場合でも、コンパイラーはデフォルトでデフォルトのコンストラクターを合成しなくなりました。
解決策:
このエラーを解決するには、次のオプションがあります。 :
Blowfish() : _algorithm(CBC) {}
Blowfish blowfish(ECB);
class GameCryptography { public: GameCryptography(BlofishAlgorithm); // Generate the default constructor GameCryptography() = default; };
追加メモ:
「ECB」、「CBC」、「CFB」などの用語は、暗号化アルゴリズム自体ではなく、暗号化アルゴリズムの動作モード。これらの用語をアルゴリズム名として使用すると、誤解や誤りが生じる可能性があります。
以上が引数を指定せずに Blowfish オブジェクトをインスタンス化すると「デフォルト コンストラクターがありません」というエラーが発生するのはなぜですか?これはどのように修正すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。