문제

C ++ 템플릿에 관한 대부분의 책은 템플릿 클래스의 생성자에서 초기화 목록을 사용할 수 있는지 여부에 대해 아무것도 말하지 않습니다.

예를 들어 다음과 같은 코드가 있습니다.

template <class T>
class Stack {
    T* data;
    std::size_t count;
    std::size_t capacity;
    enum {INIT = 5};
public:
    Stack() {
        count = 0;
        capacity = INIT;
        data = new T [INIT];
    }

생성자를 교체 할 수 있습니까?

Stack(): count(0), capacity(INIT), data(new T [INIT])
도움이 되었습니까?

해결책

예. 컴파일러가 다른 말을 했습니까?

다른 팁

방금 시도했고 vs2008은 괜찮다고 말하지만 일부 위대한 저자는 그렇게하지 않기 때문에 조금 이상하게 보입니다 (예를 들어 Eckel, 예를 들어 그의 "C ++의 생각").

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top