T 타입의 요소를 만들고 구성한 다음 배열에 추가해야하는 곳에 템플릿 문제가 발생했습니다.C++ 템플릿에서는 알 수없는 유형 (T)의 요소를 어떻게 구성합니까?
구성 부분을 수행하는 방법을 잘 모르겠습니다.
은 우리가T element;
또는
제공T element = T();
T 타입의 요소를 만들고 구성한 다음 배열에 추가해야하는 곳에 템플릿 문제가 발생했습니다.C++ 템플릿에서는 알 수없는 유형 (T)의 요소를 어떻게 구성합니까?
구성 부분을 수행하는 방법을 잘 모르겠습니다.
은 우리가T element;
또는
제공T element = T();
을 수행하여 T
클래스 유형이 될하기위한 것입니다,이 버전 말할 것이다 :
T element;
바람직하다 요소가 디폴트로 구성 가능하다면 (그리고 그렇지 않다면 위의 접근법 중 어느 것도 작동하지 않는다). 두 번째 버전을 사용 :
T element = T();
가 의미하는 것은 element
복사 - 건설 또는 이동 - 건설 얻을 수있는 유형 T
의 임시 객체를 생성 할 수 있습니다. 또한 유형을 옮길 수없는 경우 컴파일되지 않습니다.
요소가 기본 유형 인 경우 T element = T()
은 값 초기화를 제공합니다. 예를 들어, T = int
일 때, element
은 0으로 초기화되고, 첫 번째 경우에는 초기화되지 않습니다. C++ 11, 가장 좋은 방법 (코멘트에 mfontanini 의해 제안)에서는
T element{};
이렇게하면 클래스 유형의 기본 구성과 기본 유형의 값 초기화가 제공됩니다.
'T 요소 {};'값이 초기화됩니다. 그렇습니까? – mfontanini
@mfontanini : 당연히이 C++ 11 대안을 잊어 버렸습니다. 그것을 언급하겠습니다. 고마워요. –
그들은 다른 일을 할 수 있습니다. 'T'가'int' 인 경우,'int element;'또는'int element = int();'를 원합니까? –