본문 바로가기

C,C++

클래스 템플릿

사용 목적

템플릿을 쓰는 목적은 코드 작성의 무의미한 반복을 피하고 관리를 쉽게 하기 위함인듯 합니다.

 

 

방법

기본적으로 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