2014-10-16 137 views
-1
template<typename Dati> 
class NodoVettore 
{ 
private: 
    Dati valore; 
public: 
    NodoVettore() 
    { 
     valore = Dati(); 
    } 

    NodoVettore(Dati nuovoValore) 
    { 
     valore = nuovoValore; 
    } 
}; 

這兩個NodoVettore()構造函數之間的區別是什麼? 爲什麼我應該使用Dati()而不是經典的初始化? 爲什麼我們在類型名稱達提後面的括號:模板類型名初始化

valore =達蒂()

+0

這些問題通過閱讀C++文本可以得到更好的回答。 – 2014-10-16 15:48:00

回答

1

你的第一個構造函數是默認構造函數,然後從已告訴我們什麼,它只是一些分配(我假設)名爲valore的成員變量爲Dati類型的默認構造對象。

您的第二個構造函數是一個轉換構造函數(我的術語,不是標準的),它接受Dati類型的對象並將其賦值給您的成員變量。我把它稱爲轉換構造函數,因爲它沒有用explicit關鍵字標記。

爲什麼你需要在你的默認構造函數中的Dati括號是因爲這就是你如何構造一個對象。

我希望這可以幫助你,但我建議你得到一本關於C++的好書,它涵蓋了這些基本原理和更多。