Я начал изучать C++ и застрял при работе с несколькими файлами. Практиковать основные классы, я написал три разных файла,Как построить двоичный файл из нескольких файлов C++?
- working.cpp
- word.cpp
- word.h
word.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;
}
}
working.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;
}
word.h
class word;
Это три разные файлы, так что я не уверен, как собрать их. То, что я пытался это
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
Что я делаю неправильно во время компиляции?
Начните с хорошей книги, есть много проблем с кодом. – lekroif