如何在C ++中扩展现有模板?

时间:2011-05-11 09:46:40

标签: c++ templates

我正在使用基于

的模板的遗留代码
  template<class keyType, class dType> Foo Bar(const dType val)

代码中的某个地方有人制作了这样的调试函数:

virtual void getDebugStr01(int db_id, OFCString & db_str)
{
    //OFCStringStream ss;
    if(db_id==0)
    {
        map<keyType, dType>::iterator it = m_stateData.begin();
        for(;it!=m_stateData.end();it++)
        {
            (it->second).getDebugStr01(db_str);
        }
    }
}

现在,我需要使用带有float的模板类。反正有吗?

目前我得到了:

   error C2228: left of '.getDebugStr01' must have class/struct/union

1 个答案:

答案 0 :(得分:1)

getDebugStr01()应该是class/struct的成员。 virtual方法不能单独使用。

你可以做点什么,

Foo Bar (const float f)
{
...
}