> 백엔드 개발 > C++ > 인수 없이 복어 개체를 인스턴스화하면 \'기본 생성자 없음\' 오류가 발생하는 이유는 무엇이며 이 문제를 어떻게 해결할 수 있습니까?

인수 없이 복어 개체를 인스턴스화하면 \'기본 생성자 없음\' 오류가 발생하는 이유는 무엇이며 이 문제를 어떻게 해결할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-11-27 06:40:13
원래의
177명이 탐색했습니다.

Why Does Instantiating a Blowfish Object Without Arguments Produce a

오류: ""Blowfish" 클래스에 대한 기본 생성자가 없습니다."

질문:

생성자 인수를 명시적으로 지정하지 않고 Blowfish 클래스의 개체를 인스턴스화하려고 하면 컴파일러는 오류 메시지, ""Blowfish" 클래스에 대한 기본 생성자가 없습니다." 이 문제가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

답변:

Blowfish 클래스에 기본 생성자가 없는 것은 의도된 것입니다. 클래스가 단일 생성자를 정의하는 경우 컴파일러는 기본적으로 더 이상 기본 생성자를 합성하지 않습니다.

해결책:

이 오류를 해결하려면 다음 옵션이 있습니다. :

  1. 기본 생성자 제공: 필요하지 않은 기본 생성자를 정의합니다. 어떤 주장. 예:
Blowfish() : _algorithm(CBC) {}
로그인 후 복사
  1. 객체를 인스턴스화할 때 인수를 지정합니다. Blowfish 클래스의 객체를 생성할 때 원하는 BlowfishAlgorithm 값을 명시적으로 지정합니다. 예를 들면 다음과 같습니다.
Blowfish blowfish(ECB);
로그인 후 복사
  1. C 11's = default 사용: 인수를 사용하는 생성자를 정의하지만, 인수를 사용하는 생성자를 생성하도록 컴파일러에 지시합니다. 정의하지 않은 경우 생성됩니다. 이는 = 기본 구문을 사용하여 수행됩니다. 예:
class GameCryptography {
public:
    GameCryptography(BlofishAlgorithm);

    // Generate the default constructor
    GameCryptography() = default;
};
로그인 후 복사

추가 참고사항:

"ECB," "CBC," "CFB" 등의 용어는 다음과 같습니다. 암호화 알고리즘 자체가 아닌 암호화 알고리즘의 작동 모드입니다. 이러한 용어를 알고리즘 이름으로 사용하면 오해와 오류가 발생할 수 있습니다.

위 내용은 인수 없이 복어 개체를 인스턴스화하면 \'기본 생성자 없음\' 오류가 발생하는 이유는 무엇이며 이 문제를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿