Я только недавно начал возиться с отдельными файлами классов в C ++, и это была моя первая попытка:
Сначала я сделал заголовок класса с именем «ThisClass.h»:
//ThisClass.h
#ifndef THISCLASS_H
#define THISCLASS_H
class ThisClass
{
private:
int x;
float y;
public:
ThisClass(int x, float y);
void setValues(int x, float y);
int printX();
float printY();
};
#endif // THISCLASS_H
Затем я реализовал свой класс в файле с именем «ThisClass.cpp»:
//ThisClass.cpp
#include "ThisClass.h"
ThisClass::ThisClass(int x, float y)
{
this->x = x;
this->y = y;
}
void ThisClass::setValues(int x, float y)
{
this->x = x;
this->y = y;
}
int ThisClass::printX()
{
return this->x;
}
float ThisClass::printY()
{
return this->y;
}
Наконец, я сделал файл с именем «main.cpp», где я использовал класс:
//main.cpp
#include <iostream>
using namespace std;
int main()
{
ThisClass thing(3, 5.5);
cout << thing.printX() << " " << thing.printY()<< endl;
thing.setValues(5,3.3);
cout << thing.printX() << " " << thing.printY()<< endl;
return 0;
}
Затем я скомпилировал и запустил эту программу через Code Blocks, которая использует компилятор MinGW, и получил следующие ошибки:
In function 'int main()':|
main.cpp|7|error: 'ThisClass' was not declared in this scope|
main.cpp|7|error: expected ';' before 'thing'|
main.cpp|8|error: 'thing' was not declared in this scope|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Я что-то делаю не так? Любая помощь будет оценена.
Ты забыл #include "ThisClass.h"
в main.cpp
,
Как уже ответили, что вы забыли поставить #include "ThisClass.h"
в main.cpp
,
Просто сделайте это, и ваш код будет скомпилирован.
Я просто хочу ответить на ваш вопрос —
Однако теперь моя консоль ничего не выводит, хотя у меня есть 2 вызова cout
Пожалуйста, поставьте getchar()
до return
в main
функция, это позволит вам увидеть ваш вывод.