クラス内で宣言された構造体へのポインターを返すコードに問題があります。これまでの私のコードは次のとおりです。
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 ==========
助けていただければ幸いです...できるだけ早く