본문 바로가기

프로그래밍/Modern C++

[C++] 템플릿(Template) 멤버변수의 초기화

 

자료형의 초기화

자료형의 초기화를 하지 않으면 정의되지 않은 값(쓰레기 값)을 가지기 때문에 프로그램에 오류를 발생할 수 있기 때문에 안전성 있는 프로그램을 만들기 위해서는 자료형의 초기화는 선택이 아닌 필수이다. 하지만 int, char, float 같은 기본 자료형들은 초기화가 어렵지 않지만 형식이 정해지지 않은 템플릿은 어떻게 해야 초기화를 할 수 있을까?

 

초기화 하지 않은 data_ 멤버변수에 대한 경고문이 나온다.

 

 

 

템플릿(Template)멤버변수 초기화 방법

멤버변수 뿐 아니라 기본 자료형도 초기화가 가능하다.

0으로 초기화 가능한 명시적 호출이 있다.

 

클래스 템플릿에서도 명시적 초기화가 가능하다.

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, 글자 폰트 및 색상 변경