函数返回指向struct的指针

时间:2012-11-13 04:53:45

标签: c++ class

我遇到了一些代码问题,这些代码返回指向类中声明的结构的指针。到目前为止,这是我的代码:

SortedList.h

#ifndef SORTEDLIST_H
#define SORTEDLIST_H

class SortedList{

 public:

    SortedList();

 ...

 private:

    struct Listnode {    

      Student *student;

      Listnode *next;

    };

    static Listnode *copyList (Listnode *L);

};

#endif

SortedList.cpp

#include "SortedList.h"

...

// Here is where the problem lies

Listnode SortedList::*copyList(Listnode *L)

{

    return 0; // for NULL

}

显然,复制列表方法不会编译。我正在使用Microsoft Visual Studio,编译器告诉我“Listnode”未被识别。当我尝试编译时,我得到的是:

1>------ Build started: Project: Program3, Configuration: Debug Win32 ------

1>  SortedList.cpp

sortedlist.cpp(159):错误C2657:在语句开头找到'SortedList :: *'(您是否忘记指定类型?)

sortedlist.cpp(159):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int

sortedlist.cpp(159):错误C2065:'L':未声明的标识符

sortedlist.cpp(159):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int

sortedlist.cpp(159):致命错误C1903:无法从之前的错误中恢复;停止编译

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

非常感谢帮助...尽快

1 个答案:

答案 0 :(得分:2)

在cpp文件中,该函数应定义为:

SortedList::Listnode* SortedList::copyList(ListNode* L)
{
    return 0; //For NULL
}

此外,struct Listnode应声明为publicclass SortedList之外。