第一次问那么温柔。

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

“mySpace::CDAL::tailNode的返回类型离线定义与声明中的定义不同”

头文件包含在“mySpace”命名空间和模板类CDAL中

private:

struct Node
{....};

函数头
Node* tailNode();

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

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

在此先感谢您的帮助。

最佳答案

NodemySpace::CDAL<T>中声明,因此其名称必须在定义中限定:

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

也不需要struct。将其取出不会有任何影响。

关于c++ - 返回类型的脱机定义与声明中的不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26415054/

10-11 00:46