3
鑑於代碼:靜態成員和模板在C++
#include <iostream>
using namespace std;
template <typename T>
T my_max (const T &t1, const T &t2)
{
static int counter = 0;
counter++;
cout << counter << " ";
return ((t1 > t2) ? t1 : t2);
}
int main()
{
my_max (2,3);
my_max (3.5, 4.3);
my_max (3,2);
my_max ('a','c');
}
的輸出是:
1 1 2 1
據我所知,靜態部件是隻有一次初始化。 我的問題是編譯器如何記住什麼類型稱爲通用函數?幕後發生了什麼?