Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > подключение файлов


Автор: ferz721 10.11.2011, 14:55
класс в отдельном *.h файле
Код

#ifndef HEAD_H_
#define HEAD_H_
#include <iostream>
using namespace std;
class head 
{
    public: int i; head () {i = 0;} 
    void c() 
    {
        cout << "enterred c" << endl;
        cin >> i;
    }
}h;
#endif

main файл
Код

#include "head.h"
int main() {
    
    head h;             // ошибка здесь
    return 0;
}



ошибка

Type 'head' could not be resolved

ось линукс, иде еклипс.
в чем ошибка, как подклучить *.h файл?

Автор: ferz721 10.11.2011, 15:11
удалил ошибку, перезагрузил eclipse. начал работать, почему так?
похоже я не в том разделе тему создал.

Добавлено через 13 минут и 25 секунд
решение в eclipse есть папки для ресуров и отдельно для исходников. new/source folder

удалите тему. наверное она никому ненужна.

Автор: bsa 10.11.2011, 15:27
Цитата(ferz721 @  10.11.2011,  15:55 Найти цитируемый пост)
using namespace std;

Никогда не делай этого в хидере в глобальном пространстве имен. Иначе получишь в будущем кучу проблем.
Цитата(ferz721 @  10.11.2011,  15:55 Найти цитируемый пост)
}h;

А это еще зачем? Зачем тебе определение глобальной переменной, когда ты создаешь локальную? Причем в хидере!!! Если ты подключишь его внутри более, чем одного cpp файла, то получишь ошибку линковки. Если тебе необходимо только объявить переменную, то следует использовать extern.
Цитата(ferz721 @  10.11.2011,  15:55 Найти цитируемый пост)
    public: int i; head () {i = 0;} 

Я бы это записал так:
Код
    int i;
public:
    head() : i(0) {}

Если не считать глюков IDE, то разделом ты не ошибся

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)