생성자의 초기화 목록은 템플릿 클래스에서 사용할 수 있습니까?
-
04-07-2019 - |
문제
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 ++의 생각").
제휴하지 않습니다 StackOverflow