Загружаем каталог…
Загружаем каталог…
함수를 다중 정의하는 이유는 사용자의 편의성과 확장성을 얻을 수 있기 때문입니다. 그런데 사용자를 편하게 해주기 위해서 제작자는 같은 일을 여러 번 반복해야 합니다. 더 큰 문제는 같은 일을 하는 코드가 다중 정의된 함수 여러 개로 존재한다는 것입니다. 이런 문제를 해결하기 위해서 C++에서는 함수 템플릿을 사용할 수 있습니다. template <typename T> 반환형식 함수이름(매개변수) { } 템플릿은 컴파일러가 실제 사용된 타입에 맞는 함수 템플릿 인스턴스를 생성합니다. template<typename T> void mySwap(T& a, T& b) { T temp = a; a = b; b = temp; } int main() { int a = 3, b = 5; float c = 2.5, d = 4.5; char e = 'x', f = 'y'; mySwap<int>(a, b); mySwap<float>(c, d); mySwap<char>(e, f); return 0; } 템플릿 함수의 호출자에서 형식을 지정하지 않아도 타입을 보고 컴파일러가 T를 자동 추론할 수 있습니다. template<typename T> void mySwap(T& a, T& b) { T temp = a; a = b; b = temp; } int main() { int a = 3, b = 5; float c = 2.5, d = 4.5; char e = 'x', f = 'y'; mySwap(a, b); mySwap(c, d); mySwap(e, f); return 0; } 그러나 함수의 기능에 따라 자동 추론이 불가능한 경우도 있습니다. template<typename T> T getValue() { return T{}; } 위 함수에 경우 매개변수가 없기 때문에 함수 인자를 통해 T를 추론할 수 없기 때문에 직접 지정해 줘야 합니다.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
[c++. 07] 함수 템플릿. 함수를 다중 정의하는 이유는 사용자의 편의성과 확장성을 얻을 수 있기 때문입니다. 그런데 사용자를 편하게 해주기 위해서 제작자는 같은 일을 여러 번 반복해야 합니다. 더 큰 문제는 같은 일을 하는 코드가 다중 정의된 함수 여러 개로 존재한다는 것입니다. 이런 문제를 해결하기 위해서 C++에서는 함수 템플릿을 사용할 수 있습니다. template 반환형식 함수이름(매개변수) { } 템플릿은 컴파일러가 실제 사용된 타입에 맞는 함수 템플릿 인스턴스를 생성합니다. template void mySwap(T& a, T& b) { T temp = a; a = b; b = temp; } int main() { int a = 3, b = 5; float c = 2.5, d = 4.5;…
Открыть источник