我得到了以下運行參考
using namespace std;
#include <iostream>
template<typename a> struct function
{
void self1(){ cout << "hello world 1111" << endl; }
};
template<typename a> struct function<a&>
{
void self2() { cout << "hello world 2222" << endl; }
};
int main()
{
function<int> a;
a.self1();
function<int&> b;
b.self2();
return 0;
}
結果代碼:
hellow world 1111
heloow world 2222
想問的第一個「結構功能」,第二個「結構之間的關係船功能「
第二個被分類爲第一個」模板專業化「嗎? (似乎不是)
我可以看到,第二個是基於第一個。 (通過刪除第一個,它是不可編譯的)。但是
b.self1() is not defined.
因此,不知何故第二次重新定義了結構到一個新的?
是的,這是模板專業化。 –
@GillBates Thx,我通常的理解是模板專門化會定義類型爲bool/int等等。現在它被定義爲一個參考。我會更深入地瞭解這些知識。 – thundium