mysh.cppファイルに含まれて使用されるように、二重にリンクされたリストに少しのコードを適合させようとしています。
error: aggregate ‘linked_list list’ has incomplete type and cannot be defined
コンパイル時。readcommand.cppは問題なくコンパイルされるので、myshでスムーズに実行するには、ヘッダーファイルまたはcppファイルのいずれかで何を変更する必要があるかを理解しようとしています。
使用されるファイルの関連部分は次のとおりです。
mysh.cpp
#include "readcommand.h"
using namespace std;
int main (int argc, char** argv) {
readcommand read;
linked_list list; // THIS is the line that's causing the error
...
}
readcommand.h
#ifndef READCOMMAND_H
#define READCOMMAND_H
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cstdlib>
class readcommand {
public:
// Struct Definitions
typedef struct node node_t;
typedef struct linked_list linked_list_t;
struct node;
struct linked_list;
...
};
#endif
readcommand.cpp
#include "readcommand.h"
using namespace std;
struct node {
const char *word;
node *prev;
node *next;
};
struct linked_list {
node *first;
node *last;
};
...
私がC++、または一般的な言語でヘッダーを使用してからしばらく経ちました。問題の行を次のように変更してみました
read.linked_list list;
と
read.linked_list list = new linked_list;
などですが、エラーが次のようなものに変わるだけです。
error: ‘class readcommand’ has no member named ‘linked_list’
と
error: invalid use of ‘struct readcommand::linked_list’
よろしくお願いします。