Tôi đã tự hỏi rằng khi tôi tạo một thể hiện của một mẫu lớp với chỉ định tham số kiểu mẫu.
1) tại sao hàm không được gọi không được instatiated? .
2) chúng không được biên dịch cho đến khi tôi cố gắng sử dụng?
3) logic đằng sau hành vi này là gì?
Tại sao các thành viên lớp mẫu chưa được kích hoạt lại không được khởi tạo?
Ví dụ
template <class T>
class cat{
public:
T a;
void show(){
cout << a[0];
}
void hello(){
cout << "hello() get called \n";
}
};
int main(){
cat<int> ob1; // I know that show() did not get instatiated, otherwise I will get an error since a is an int
ob1.hello();
}
trình biên dịch gì bạn đã sử dụng không? –