저는 전임 C++ 프로그래밍을 처음 접했기 때문에 다양한 것들과 관련된 뉘앙스를 더 잘 이해하고자합니다.C++ 템플릿을 사용한 메서드 정의
저는 주로 작은 프로젝트에서 템플릿을 사용하고 있습니다. 주로 배울 때 코드를 작성하고 있습니다. 비주얼 스튜디오 나 (내 .H 파일에서 내 .cpp 파일에서)이 해당하는 코드를 생성 도움 :
template<class T>
PriorityQueue<T>::ClimbDownHeap(const int currentNodeIndex)
{
}
template<class T>
PriorityQueue<T>::GetRightNodeIndex(const int currentNodeIndex)
{
}
이 단지 유효한 될 것이라고하지만 내가 인상입니다 :
template <class T>
class PriorityQueue
{
public:
ClimbDownHeap(const int currentNodeIndex)
{
}
private:
GetRightNodeIndex(const int currentNodeIndex)
{
}
};
내 이해가 틀릴 수도 있지만, 지금까지 적어도 두 가지 모두 컴파일하는 것처럼 보일 것입니다. 이 두 스타일 사이에 중요한 차이점이 있습니까? 나는 더 깨끗하고 분명하기 때문에 두 번째를 선호합니다. 이들 사이의 뉘앙스는 무엇입니까?
참고 : 울퉁불퉁 한 열차에이 내용을 입력하면 문제가 발생하거나 코드가 명확하지 않은 경우 사과합니다 (정확하게 입력하지 않은 경우 입력 한 것임).
소스 파일에 템플릿 정의를 넣는 것이 문제가 될 수 있습니다. 그것에 대해 자세히 알아 보려면 [this] (http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file) 질문을 읽어보십시오. –
[템플릿을 헤더 파일에만 구현할 수있는 이유는 무엇입니까?] (http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file) –
I ** CppCon 2016 : Arthur O'Dwyer "템플릿 일반 프로그래밍"** [Part1] (https://www.youtube.com/watch?v=vwrXHznaYLA) 및 [Part2] (https : // www.youtube.com/watch?v=VIz6xBvwYd8) –