* 클래스 템플릿
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 |