Andry333 0 24 мая, 2008 Опубликовано 24 мая, 2008 · Жалоба Доброго времнеи суток. Помогите ламеру разобрться с иаром. Значит проблема такая, определяю класс, как показано ниже: class _COM_Klass { public: _COM_Klass(); void Send_String_to_COM0 (const char *index, short int size){ } void Send_To_COM0 (void){ } }COM_Klass; COM_Klass.Send_To_COM0(); при компиляции выскакивают ошибки на строке COM_Klass.Send_To_COM0(); : Error[Pe077]: this declaration has no storage class or type specifier Error[Pe247]: variable "COM_Klass" has already been defined Error[Pe065]: expected a ";" Юзаю иар 4.31 Мозг уже по швам :smile3046: , что это может быть, вроде все правильно, в вижуале тоже самое писал.... работает... подозрения падают на настройки компилятора, хотя в опциях везде стоит с++. Помогите плиз. хочу классы освоить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 24 мая, 2008 Опубликовано 24 мая, 2008 · Жалоба Помогите плиз. хочу классы освоитьЕсли хотите освоить - надо начать с какого-нибудь букваря по С++. Для кода в форме ввода есть специальная кнопка с символом "#". //Описываем функцию-член void _COM_Klass::Send_To_COM0 (void) { }; // объявляем объект (экземпляр класса). _COM_Klass COM_Object; void Test() { //вызываем функцию-член этого объекта COM_Object.Send_To_COM0(); } И не используйте подчеркивания перед именами - такая форма зарезервирована за компилятором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andry333 0 24 мая, 2008 Опубликовано 24 мая, 2008 · Жалоба За скорый ответ спасибо. Сделал все так, как вы советовали... не помогает... набор ошибок, выдаваемых компилятором аналогичный... вообще, складывается ощущение, будто иар отказывается понимать классы, хотя галочка с++ стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 24 мая, 2008 Опубликовано 24 мая, 2008 · Жалоба вообще, складывается ощущение, будто иар отказывается понимать классы, хотя галочка с++ стоит.Иар классы понимает. Это я вам гарантирую, потому что сам его использую именно с классами. Обратите внимание, что в объявлении класса вы указали Send_To_COM0 с параметрами, а в определении - нет. И кто в этом виноват - вы или компилятор? Очень извиняюсь, ваш текст без форматирования совершенно нечитаем. Вроде все у вас правильно - вы определили функции прямо в определении класса. А где стоит галочка С++? Я ставлю галочку "автоматически определять по расширению" и файлам даю расширение cpp Попробуйте вот такой элементарный пример: class a_t { public: inline a_t(int a) : a(a), b(88) {} int a; int b; }; a_t a(6), b(33); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andry333 0 25 мая, 2008 Опубликовано 25 мая, 2008 (изменено) · Жалоба Да я в прошлом(первом) своем проэкте пользовал классы, даже память под них выделял динамически. Начал второй проект. Вроде и пишу самые простые классы, обьявляю, вроде все по букварю... Компилятор ругается. Обратите внимание, что в объявлении класса вы указали Send_To_COM0 с параметрами, а в определении - нет. И кто в этом виноват - вы или компилятор? сори) в проэкте у меня с параметрами конечно, видимо удалил случайно.... Очень извиняюсь, ваш текст без форматирования совершенно нечитаем. больше так не буду)) А где стоит галочка С++? Я ставлю галочку "автоматически определять по расширению" и файлам даю расширение cpp Project / Options / C/C++ Compiler / Language / Extended Embeded C++ Попробуйте вот такой элементарный пример: class a_t { public: inline a_t(int a) : a(a), b(88) {} int a; int b; }; a_t a(6), b(33); Попробовал, Дословно как у вас, компилит, но стоит только вписать метод и к нему обратится, выдает ошибку. class a_t { public: inline a_t(int a) : a(a), b(88) {} int a; int b; inline void b_t(){ a = b; } }; a_t a(6), b(33); a_t a_t_Object(25); a_t_Object.b_t(); Error[Pe077]: this declaration has no storage class or type specifier Изменено 25 мая, 2008 пользователем Andryha Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба a_t a_t_Object(25); a_t_Object.b_t(); Error[Pe077]: this declaration has no storage class or type specifier Если я правильно понял вашу проблему, попробуйте так: void Test() { a_t_Object.b_t(); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться