C++ 虚拟函数实现中缺少类型说明符
我在C++中有以下类结构:C++ 虚拟函数实现中缺少类型说明符,c++,templates,c++11,visual-c++,virtual-functions,C++,Templates,C++11,Visual C++,Virtual Functions,我在C++中有以下类结构: template<T> class A { class B { class C_Base { virtual int foo(const T &a, const T &b) = 0; }; template<U> class C final : public C_Base { const U &x;
template<T>
class A {
class B {
class C_Base {
virtual int foo(const T &a, const T &b) = 0;
};
template<U>
class C final : public C_Base {
const U &x;
virtual int foo(const T &a, const T &b) {
return x(a, b);
}
};
};
};
但是,MSVC给了我一个缺少类型说明符-int的错误。注:C++不支持Debug T-In。C. Why中Foo的定义是这个,它是如何固定的? < P>你忘记了Type NealEngy。< /P>
你忘记了typename关键字
你在瞎编。试图编译这段代码将立即在第一行失败:template。修复这些错误会使它在MSVC中编译时没有任何问题。你是在编造一些东西。试图编译这段代码将立即在第一行失败:template。修复这些错误使它在MSVC中编译没有任何问题。。。谢谢你,我真不敢相信我竟然忘了这样的事……这是多么漫长的一天啊。。。谢谢你,我真不敢相信我竟然忘了这样的事。。。
template<typename T>
//-------^^^^^^^^