c ++中的泛型编程和类中的typedef

时间:2011-09-22 09:53:29

标签: c++ templates typedef

假设我在A.cpp文件中有以下代码:

template <typename T>
class A{
   typedef T myType;
   myType foo();
}

如果我想在这个文件中实现foo函数,那么编写函数声明的语法是什么? 我以为它会是:

template <class T>
myType A<T>::foo(){
.
.
.
}
显然这是错误的。

2 个答案:

答案 0 :(得分:4)

是的,typedef仅在类中可用,并且返回类型不在类中:

template <class T>
typename A<T>::myType A<T>::foo() {}

答案 1 :(得分:0)

template <typename T>
typename A<T> :: myType A<T> :: foo ()
{
}