C,C++
클래스 템플릿
미오29살
2022. 11. 1. 15:41
사용 목적
템플릿을 쓰는 목적은 코드 작성의 무의미한 반복을 피하고 관리를 쉽게 하기 위함인듯 합니다.
방법
기본적으로 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;
}