2016-07-20 12 views
0

Я только недавно начал возиться с отдельными файлами классов в C++, и это была моя первая попытка:класса C++ Header и реализация Ошибка

Сначала я сделал класс заголовок под названием «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; 
    } 

я скомпилирован и запустил эту программу через блоки кода, который использует компилятор 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)) ===| 

Am Я что-то делает это неправильно? Любая помощь будет оценена по достоинству.

+0

Это исправило мои ошибки. Однако теперь моя консоль ничего не выводит, хотя у меня есть 2 вызова cout. –

+0

Какая консоль? Используете ли вы Visual Studio или какую-либо другую среду IDE или просто командную строку? – SurvivalMachine

+0

Я использую Code Blocks, который использует компилятор MinGW. –

ответ

2

Вы забыли #include "ThisClass.h" в main.cpp.

0

Как уже ответил, что вы забыли положить #include "ThisClass.h" в main.cpp.

Просто сделайте это, и ваш код будет скомпилирован. Я просто хочу, чтобы ответить на ваш вопрос - Однако, теперь моя консоль ничего не выводит, даже если у меня есть 2 соиЬ называет Пожалуйста поставить getchar() перед тем return в main функции, это позволит вам увидеть свой выход.

+0

Спасибо за ответ, однако реальная причина, по которой консоль не работала, состояла в том, что я добавил флаг -mwindows, который добавляет библиотеки, которые отключены для консоли. –