사용 목적
템플릿을 쓰는 목적은 코드 작성의 무의미한 반복을 피하고 관리를 쉽게 하기 위함인듯 합니다.
방법
기본적으로 template<class 변수명>이 되겠으며, 추가적으로 지정하고 싶다면 밑의 코드를 보시면 int size처럼 추가만 해주시면 됩니다.
TempType은 string이 될수도 있고 int가 될수도 있으며 또 다른 클래스가 될 수도 있습니다.
예시 코드
#include <iostream>
#include <string>
template<class TempType, int size>
class Test
{
public:
Test() { m_size = size; };
~Test() {};
public:
void set_name(const TempType& name_in) { m_name = name_in; };
TempType get_name() const { return m_name; };
void print_all() { std::cout << m_name << " , " << m_size; };
private:
TempType m_name;
int m_size;
};
int main()
{
Test<std::string, 60> a;
Test<char, 30> b;
Test<Test<std::string,30>, 60> c; //이런 것도 가능하다!
a.set_name("조아야");
a.print_all();
b.set_name('z'); //char형으로 인수를 받았기 때문에 객체b의 성질이 완전히 달라져버렸어요.
b.print_all();
return 0;
}
'C,C++' 카테고리의 다른 글
공부하면서 빠트린 것들 끄적끄적 - 얕은 복사 vs 깊은 복사 (0) | 2023.09.25 |
---|---|
함수 객체 (0) | 2022.11.03 |
함수 포인터 (0) | 2022.11.02 |
함수 템플릿 (0) | 2022.11.01 |