【发布时间】:2015-02-03 18:24:20
【问题描述】:
我在头文件中声明了一个 C++ 类定义,如下所示:
template <class T>
class MyClass : public T
{
public:
STDMETHODIMP myMethod();
};
.cpp 中的实现是这样的:
template <class T>
STDMETHODIMP MyClass<T>::myMethod() {
// Implementation...
}
编译器 (Visual Studio) 抱怨方法实现,说“使用过时的错误:忽略数据的修饰符”以及“无法识别的模板声明/定义”。
有什么想法吗?
编辑:
错误可能在这里吗?
我正在尝试扩展 MyClass,所以我声明
class ChildClass : MyClass<SomeConcreteClass>
{
// Stuff...
};
【问题讨论】:
-
如果你想保持你的标题干净,你可以将它写入一个.inl文件,并在你的标题末尾简单地包含“
.inl”
标签: c++ windows visual-studio templates inheritance