C ++中以下函数的返回类型是什么?

时间:2014-02-14 02:06:55

标签: c++

Typename是什么意思?该函数应该返回什么?

typename BSTMap<KEY,T>::TN* BSTMap<KEY,T>::find_key (TN* root, const KEY& key) const {..}

1 个答案:

答案 0 :(得分:6)

返回类型为BSTMap<KEY,T>::TN*

关键字typename是告诉编译器嵌套名称TN命名类型所必需的。例如。 TN可以是嵌套的typedef名称,嵌套类类型等。当您使用typename语法引用嵌套名称时,几乎总是需要这个额外的T1::T2关键字,其中T1部分取决于模板参数。

在许多情况下没有它,编译器将无法正确“理解”代码(例如,确定*字符是否声明指针,作为一元解引用运算符还是用作二进制乘法操作者)。