2009-05-20 4 views
13

Có ai biết cú pháp của phương thức mẫu không khai báo trong lớp mẫu hay không.Ngoài các định nghĩa mẫu khai báo cho phương thức mẫu trong lớp mẫu

ví dụ:

template<class TYPE> 
class thing 
{ 
public : 
    void do_very_little(); 

    template<class INNER_TYPE> 
    INNER_TYPE do_stuff(); 
}; 

Phương pháp đầu tiên được định nghĩa:

template<class TYPE> 
void thing<TYPE>::do_very_little() 
{ 
} 

Làm thế nào để làm điều thứ hai, "do_stuff"?

+0

Ý của bạn là để khai báo do_stuff như một trường thành viên? Giả sử bạn thực sự muốn khai báo một phương thức, các đối số của nó là gì? – outis

+0

Bạn cần đặt dấu ngoặc sau do_stuff trong khai báo lớp học –

Trả lời

29
template<class TYPE> 
template<class INNER_TYPE> 
INNER_TYPE thing<TYPE>::do_stuff() 
{ 
    return INNER_TYPE(); 
} 

Hãy thử điều này.

+1

Đánh bại tôi bằng giây! Vâng thực hiện :-) –

+2

Ha ha, Chúng tôi đã cho cùng một mã :-) – CMinus

+0

Bình chọn cả hai u. chúc mừng :) –