Trong hướng dẫn này, chúng ta sẽ thảo luận về template và biến static trong C++.
Trong trường hợp template hàm và template lớp, mỗi thể hiện (instance) của template có bản sao cục bộ riêng của các biến static.
Ví dụ
#include <iostream>
using namespace std;
template <typename T>
void fun(const T& x) {
static int i = 10;
cout << ++i;
return;
}
int main() {
fun<int>(1); // in 11
cout << endl;
fun<int>(2); // in 12
cout << endl;
fun<double>(1.1); // in 11 lại (instance riêng)
cout << endl;
getchar();
return 0;
}
Đầu ra
11 12 11