返回类型的外联定义与声明中的定义不同

时间:2014-10-16 22:36:52

标签: c++

第一次问这么温柔。

我遇到了为函数返回自定义类型的问题。更具体地说,我有一个链表,我正在编写一个遍历列表末尾并返回指向该节点的指针的函数。不幸的是,我得到了一个令人讨厌的错误:

" mySpace :: CDAL :: tailNode的返回类型的外部定义与声明中的不同#34;

头文件包含在" mySpace"名称空间和模板类CDAL

private:

struct Node
{....};

函数头

Node* tailNode();

和.cpp

template <typename T>
struct Node* mySpace::CDAL<T>::tailNode()
{...}

我尝试使用struct,因为有人提到过你有时需要它的非typedef声明,而且我不再收到未知类型错误,而是收到了它。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

NodemySpace::CDAL<T>内声明,因此其名称必须符合定义:

template <typename T>
struct typename mySpace::CDAL<T>::Node* mySpace::CDAL<T>::tailNode()
{...}

struct也不是必需的。把它拿出来不会有所作为。