2017-03-02 41 views
-4

我覺得這個問題很棘手。你認爲什麼?問:以下代碼會生成多少個類?

template <typename T> class myTemplate 
{ 
public: 
    T val; 
... 
}; 
void myFunction() 
{ 
    MyTemplate<int> a; 
    MyTemplate<double> b; 
} 
+0

如果我沒有弄錯,這實際上是實現定義的,實現可能會或可能不會生成2個類。如果特別聰明的話,優化器甚至可以優化你的班級:) – Rakete1111

+0

我認爲答案是2班。每種類型都需要一個......順便說一句,爲什麼人們會投我的問題?這是不正確的制定?我是新來的,謝謝 – Jack

回答

0

您使用兩個不同的模板參數實例化模板兩次,因此它會創建兩個類實例。