首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为何在这个成员函数前面多加一个typename?解决思路

2012-06-07 
为何在这个成员函数前面多加一个typename?头文件里面定义模版类:C/C++ codetemplate typename T, int AS

为何在这个成员函数前面多加一个typename?
头文件里面定义模版类:

C/C++ code
template< typename T, int AS = 1 >class Octree{   ....};{


cpp文件里面:
C/C++ code
template< typename T, int AS >typename Octree<T,AS>::Node*& Octree<T,AS>::Branch::child( int x, int y, int z ){    return children[z][y][x];}


为什么前面多加了typename ?

[解决办法]
为了告诉编译器Octree<T,AS>::Node是个类型,而不是一个其他东西(比如某个静态变量)

C++标准规定typename在这种场合下是必须的。不过即使不加,有的编译器比如VC可能还是让你过的。

热点排行