1.템플릿
함수나 클래스에서 데이터 타입을 일반화하여 코드 재사용성을 높이는 기능입니다.
2.함수 템플릿
다양한 데이터 타입에 대해 동일한 함수를 정의할 수 있습니다.
template <typename T>
T functionName(T parameter) {
// 함수 구현
}
#include <iostream>
// 함수 템플릿 정의
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
int main() {
std::cout << "Max of 5 and 10 is " << max(5, 10) << std::endl; // int
std::cout << "Max of 3.14 and 2.71 is " << max(3.14, 2.71) << std::endl; // double
std::cout << "Max of 'a' and 'b' is " << max('a', 'b') << std::endl; // char
return 0;
}
3.클래스 템플릿
다양한 데이터 타입의 객체를 만들 수 있는 클래스의 일반적인 정의를 제공합니다.
template <typename T>
class ClassName {
private:
T data;
public:
ClassName(T value) : data(value) {}
T getData() const { return data; }
};
#include <iostream>
// 클래스 템플릿 정의
template <typename T>
class Box {
private:
T value;
public:
Box(T v) : value(v) {}
T getValue() const {
return value;
}
void setValue(T v) {
value = v;
}
};
int main() {
Box<int> intBox(123);
Box<double> doubleBox(45.67);
std::cout << "Int Box contains: " << intBox.getValue() << std::endl;
std::cout << "Double Box contains: " << doubleBox.getValue() << std::endl;
return 0;
}
'Language > C++' 카테고리의 다른 글
[C++] 클래스 (0) | 2024.08.02 |
---|---|
[C++] Namespace (0) | 2024.08.01 |
[C++] 동적 메모리 관리 (0) | 2024.08.01 |