C++ の学習を開始しましたが、複数のファイルを操作するときに行き詰まりました。基本的なクラスを練習するために、3 つの異なるファイルを作成しました。
- ワーキング.cpp
- 単語.cpp
- ワード.h
単語.cpp:
#include <iostream>
#include "word.h"
using namespace std;
class word{
public:
char *word;
void createWord(char *str)
{
word = str;
}
void print_word(void)
{
cout<<word<<endl;
}
char * getWord()
{
return word;
}
}
ワーキング.cpp
#include <iostream>
#include "word.h"
void printWord(word);
using namespace std;
int main()
{
word one;
one.createWord("one");
printWord(one);
}
void printWord(word a)
{
cout<<a.getWord()<<endl;
}
ワード.h
class word;
これらは 3 つの異なるファイルであるため、それらをコンパイルする方法がわかりません。私が試したことは
g++ working.cpp word.cpp
ただし、コンパイラは単語をクラスとして認識せず、次のエラーが表示されます
working.cpp: In function 'int main()':
working.cpp:7:7: error: aggregate 'word one' has incomplete type and cannot be defined
working.cpp:7:12: error: aggregate 'word two' has incomplete type and cannot be defined
working.cpp:7:17: error: aggregate 'word three' has incomplete type and cannot be defined
working.cpp: In function 'void printWord(word)':
working.cpp:19:6: error: 'aha' has incomplete type
In file included from working.cpp:2:0:
word.h:2:7: error: forward declaration of 'class word'
word.cpp:25:1: error: expected ';' after class definition
コンパイル中に何が間違っていますか?