>백엔드 개발 >C++ >C에서 매개변수 없는 템플릿 생성자를 어떻게 만들 수 있나요?

C에서 매개변수 없는 템플릿 생성자를 어떻게 만들 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-12-03 03:54:08255검색

How Can I Create a Parameterless Template Constructor in C  ?

매개변수가 없는 생성자 템플릿

C에서는 매개변수가 없는 템플릿 생성자를 직접 선언하는 것이 불가능합니다. 이는 기본 생성자와 충돌이 발생하기 때문입니다.

가능한 해결 방법 중 하나는 템플릿 생성자에서 더미 매개 변수를 만드는 것입니다.

class A{
   template <typename U> A(U* dummy) {
       // Do something
   }
};

해결 방법의 제한 사항

그러나 이 해결 방법에는 제한 사항이 있습니다.

  • 템플릿 인수는 인수 추론을 통해 추론해야 하기 때문에 생성자 호출 시 명시적으로 지정할 수 없습니다.
  • 생성자 템플릿을 호출하려면 인수를 전달해야 합니다.

대체 접근 방식

이러한 단점 없이 원하는 기능을 얻으려면 다음을 고려하세요. 대안:

  • 클래스 생성자에서 기본값 사용: 원하는 매개변수에 대한 기본값으로 기본 생성자를 정의합니다.
  • 팩토리 함수 사용: 원하는 인수를 받아들이고 클래스의 인스턴스를 반환하는 정적 팩토리 함수를 만듭니다.

위 내용은 C에서 매개변수 없는 템플릿 생성자를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.