c++中的泛型编程和类中的类型定义

generic programming in c++ and typedef inside a class

本文关键字:类型 定义 泛型编程 c++      更新时间:2023-10-16

假设我在a.p文件中有以下代码:

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

如果我想在这个文件中实现foo函数,写函数声明的语法是什么?我想应该是:

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

显然是错的

是的,typepedef只在类中可用,而返回类型不在类中:

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