자료형의 초기화
자료형의 초기화를 하지 않으면 정의되지 않은 값(쓰레기 값)을 가지기 때문에 프로그램에 오류를 발생할 수 있기 때문에 안전성 있는 프로그램을 만들기 위해서는 자료형의 초기화는 선택이 아닌 필수이다. 하지만 int, char, float 같은 기본 자료형들은 초기화가 어렵지 않지만 형식이 정해지지 않은 템플릿은 어떻게 해야 초기화를 할 수 있을까?
템플릿(Template)멤버변수 초기화 방법
멤버변수 뿐 아니라 기본 자료형도 초기화가 가능하다.
클래스 템플릿에서도 명시적 초기화가 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
constexpr int MAX = 500;
template<class T>
class List {
private:
T data_[MAX];
size_t size_;
public:
List() :size_(0),data_() {} //data_가 초기화 된다.
void InsertData(const T& data) {
data_[size_++] = data;
}
void InsertData(const T&& data) {
data_[size_++] = data;
}
void DisPlay()const {
for (size_t i = 0; i < size_; ++i)
std::cout << data_[i] << " ";
std::cout << "\n";
}
};
int main() {
List<int> list;
list.InsertData(5);
list.InsertData(6);
list.InsertData(8);
list.InsertData(9);
list.DisPlay();
}
|
인용 및 출처
인용 글: https://wikidocs.net/421
20.04.22
소스코드 -> color Scripter, 글자 폰트 및 색상 변경
'프로그래밍 > Modern C++' 카테고리의 다른 글
[C++] 2차원 Vector의 초기화 (0) | 2020.04.13 |
---|---|
[C++] 용어 정리(1) 객체지향 철학, 객체지향 디자인 원칙(SOLID) (0) | 2020.03.22 |
[C++] 스트림 반복자(stream iterator)-입력/출력 (0) | 2020.03.05 |
[C++] 연관 컨테이너 맵(map) (0) | 2020.02.18 |
[C++] 포인터(Pointer)를 컨테이너(Container)에 저장하기 (0) | 2020.02.15 |