프로그래밍/C++

#53. 클래스 템플릿

코딩하는상후니 2022. 7. 20. 22:12
 

 

* 클래스 템플릿
 
template <typename T>
class RandomBox
{
public:
	T GetRandomData()
	{
		int idx = rand() % 10;
		return _data[idx];
	}

public:
	T _data[10];
};
 
 
*무조건 typename 을 붙여야 하는 것은 아니다.
template <typename T, int SIZE>
class RandomBox
{
public:
	T GetRandomData()
	{
		int idx = rand() % SIZE;
		return _data[idx];
	}


public:
	T _data[SIZE];
};
 
 
RandomBox<int, 10> rb1;
RandomBox<float, 20> rb2;
 
rb1 = rb2  => ( X )
=> rb1  /  rb2 는 각각 독립적인 객체이다.
 
*100% 일치해야지만 가능.
RandomBox<float, 20> rb3;
rb3 = rb2;
 
 

 
 
*클래스 템플릿 특수화

 

 
template <int SIZE>
class RandomBox<double, SIZE>
{
public:
	double GetRandomData()
	{
		int idx = rand() % SIZE;
		return _data[idx];
	}


public:
	double _data[SIZE];
};
 

 

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

 

 

'프로그래밍 > C++' 카테고리의 다른 글

#55. vector  (0) 2022.07.21
#54. 콜백함수  (0) 2022.07.20
#52. 함수 템플릿  (0) 2022.07.20
#51. 함수 객체  (0) 2022.07.20
#50. 함수 포인터  (0) 2022.07.20