Skip to content
Go back

在外部使用模板类中定义的数据类型

在做数据结构实验时,遇到了这样一个问题:

ncll.h:168:1: error: need ‘typename’ before ‘linkList<ElemType>::nodeP’ because ‘linkList<ElemType>’ is a dependent scope

 linkList<ElemType>::nodeP linkList<ElemType>::getHead()

 ^~~~~~~~~~~~~~~~~~

下面是这次实验中的部分代码

template <typename ElemType>

class linkList

{

public:

    class linkNode

    {

    public:

        ElemType data;

        linkNode *next;

    };



    typedef linkNode * nodeP;



    nodeP getHead();



protected:

    nodeP head;

};



template <typename ElemType>

linkList<ElemType>::nodeP linkList<ElemType>::getHead()

{

    return head;

}

查阅资料后了解到,在模板类外部使用自定义的数据类型需要添加typename关键字; 如下所示

template <typename ElemType>

typename linkList<ElemType>::nodeP linkList<ElemType>::getHead()

{

    return head;

}

Share this post on:

Previous Post
Vim查找替换
Next Post
Dijkstra算法