2011-03-18 82 views
0

任何人都可以通過解釋功能模板的真實用途來幫助我。他們如何工作?今天早上我看到一些代碼,但我仍然不明白這個的真正用途:你能解釋這個會員功能模板嗎?

class A 
{ 
template<class T> T getData() const 
{ 
    const T* pointer == dynamic_cast<const T*>(mData) 
    if(0 == pointer) 
    { 
    T defaultValue = T() 
    } 
    } 
private: 
    LData *mData; 
}; 

我不明白這一點。任何人都可以給我一個關於函數模板的總體思路嗎

感謝

+0

@user:此代碼沒有任何用處。你在哪裏找到它? – 2011-03-18 13:08:29

+5

找到更好的例子來學習。這段代碼至少缺少'return'語句和分號。 – aschepler 2011-03-18 13:11:54

回答

2

我覺得應該是這樣的:

class A 
{ 
template<class T> 
T getData() const 
{ 
    const T* pointer = dynamic_cast<const T*>(mData); 
    if(0 == pointer) 
    return T(); 

    return *T; 
} 
private: 
    LData *mData; 
}; 

它試圖讓MDATA轉換該緩衝區或類(我不知道LDATA是什麼)在T形。

+1

雖然我們已經基於猜測來修復代碼,但第一個「==」比較幾乎可以肯定是一個'='賦值。 – 2011-03-18 13:28:40

+0

並且您需要在投線的末端有一個半框 – 2011-03-18 13:29:42

+0

是的,對不起! – mik 2011-03-18 15:55:20

相關問題