2011-03-18 125 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

相关问题