Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] 템플릿 기초 #2 본문
#include <iostream>
using namespace std;
// typename T(name)를 붙이면 어떤 타입도 다 넣을 수 있음
// 무조건 typename을 붙여야 하는 것은 아니다
// template<> 안에 들어가는건 [골라줘야 하는 목록]이라고 볼 수 있음
template<typename T, int SIZE = 10>
class RandomBox
{
public:
T GetRandomData()
{
int idx = rand() % SIZE;
return _data[idx];
}
public:
T _data[SIZE];
};
// 템플릿 특수화
template<int SIZE>
class RandomBox<double, SIZE>
{
public:
double GetRandomData()
{
cout << "RandomBox Double" << endl;
int idx = rand() % SIZE;
return _data[idx];
}
public:
double _data[SIZE];
};
int main()
{
srand(static_cast<unsigned int>(time(nullptr)));
// 템플릿 : 함수나 클래스를 찍어내는 틀
// 1) 함수 템플릿
// 2) 클래스 템플릿
RandomBox<int, 10> rb1;
for (int i = 0; i < 10; i++)
{
rb1._data[i] = i;
}
int value1 = rb1.GetRandomData();
cout << value1 << endl;
RandomBox<double, 20> rb2;
for (int i = 0; i < 20; i++)
{
rb2._data[i] = i;
}
double value2 = rb2.GetRandomData();
cout << value2 << endl;
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] vector #1 (0) | 2023.05.18 |
---|---|
[C++] 콜백 함수 (0) | 2023.05.18 |
[C++] 템플릿 기초 #1 (0) | 2023.05.03 |
[C++] 함수 객체 (0) | 2023.05.01 |
[C++] 함수 포인터 #2 (0) | 2023.05.01 |