int0x25 0 1 апреля, 2010 Опубликовано 1 апреля, 2010 · Жалоба Здравствуйте. Что то я совсем запутался с кейлом :( Создаю h файл и пытаюсь написать класс, компилятор ругается "identifier "class" is undefined" . Переношу этот же объявление класса в с++ файл, там все нормально компилится. Подскажите , пожалуйста, что надо настроить, чтобы объявить класс в хэдере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 1 апреля, 2010 Опубликовано 1 апреля, 2010 · Жалоба Здравствуйте. Что то я совсем запутался с кейлом :( Создаю h файл и пытаюсь написать класс, компилятор ругается "identifier "class" is undefined" . Переношу этот же объявление класса в с++ файл, там все нормально компилится. Подскажите , пожалуйста, что надо настроить, чтобы объявить класс в хэдере. Примерно так, в хидере #ifndef MY_INCLUDE #define MY_INCLUDE // подключить необходимые хидеры class Myclass { private: // здесь закрытые члены public: // открытый интерфейс, не забыть про конструктор protected: // защищенные члены }; #endif //MY_INCLUDE В файле CPP #include "My_include.h" // Далее реализация методов класса Myclass::Myclass( ) // если надо с параметрами { ........... } void Myclass::Func1(int par1, char par2) { ............ } ........... ........... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 1 апреля, 2010 Опубликовано 1 апреля, 2010 · Жалоба Главное не пытаться оттранслировать 'голый' .h файл. В частности он не должен быть включен в список сорцов в IDE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
int0x25 0 1 апреля, 2010 Опубликовано 1 апреля, 2010 · Жалоба Спасибо, конечно, но с с++ у меня все в порядке и я это понимаю =) Дело в другом - когда я пишу class Myclass{}; в хэдере, то не подсвечивается слово class и при компиляции выдает ошибку. А если я это в с++ файл переношу , т.е. и объявление и определение сразу делаю, то все отлично компилируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
baralgin 0 1 апреля, 2010 Опубликовано 1 апреля, 2010 (изменено) · Жалоба int0x25 предложенное вам выше было, кстати, не с++(хотя дело похоже не в этом). Подсветка тоже ни о чём не говорит (кейл последней версии 4.х подсвечивает class но не подсвечивает bool в хидерах, хотя всё работает). Вы говорите "c++ файл", предлагаю для определённости называть это "cpp-файл" (где cpp - расширение). Ваш хидер с классами должен подключаться только к cpp-файлам. В проекте есть чистые си-файлы? Конечно, задать(форсировать) для компилятора тип файла (c/c++) можно и опциями проекта, но смысл от этого не теряется. И ещё: когда компилятор находит ошибки в хидере, в окне Output сразу видно в каком модуле он это нашёл - это может помочь определиться. ps: перепроверил, class в хидерах тоже не подсвечивается... Изменено 1 апреля, 2010 пользователем baralgin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
int0x25 0 1 апреля, 2010 Опубликовано 1 апреля, 2010 · Жалоба Всем спасибо за помощь. На другом компе все заработало и класс компилится и шаблоны, похоже это что то с кейлом у меня дома, попробую переставить его. Печально, конечно, что подсветка синтаксиса никакая и нет автодополнения :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться