Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62

Заголовочный файл класса, что не так?:/

25.12.2010, 19:23. Показов 6067. Ответов 54
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, помогите, у меня есть стойкое ощущение что мудак не я. Сделал заголовочный файл, нажимаю компиляцию и это скотина вываливает мне
[C++ Error] LanSwitch.h(4): E2141 Declaration syntax error
ставя курсор после большой буквы S в слове LanSwitch.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef lanSwitchH
#define lanSwitchH
class LanSwitch {
    public:
     LanSwitch();
     int NumPorts;
     char* returnMac();
     void GetMac(char* EnterMac);
    private:
     char* Mac;
};
#endif
Буквально вчера практически такой же файл компилился без вопросов, а сейчас вывадивает ошибку такую же
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef LanSwitchH
#define LanSwitchH
class LanSwitch {
   public:
   LanSwitch();
   void GetMac();
   char* ShMac()
   {
       return mac;
   }
   private:
   char* mac;
};
#endif
Все-таки лыжи не едут или я не такой?

Добавлено через 8 часов 55 минут
Неужели никто не знает?(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2010, 19:23
Ответы с готовыми решениями:

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

Создать заголовочный файл, использующие другие заголовочники так, чтобы они не были доступны в программе
Здравствуйте! Хотел спросить, как можно как можно создать заголовочный файл, который используют другие заголовочные файлы, таким образом...

Заголовочный файл <thread> и все что с ними связано
Доброе время уважаемые форумчани! Проспал((( лекцию по потока, а может и забыл а может и не помнил! Короче, есть задумка, дано: 1)...

54
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
29.12.2010, 21:22
Студворк — интернет-сервис помощи студентам
Woody-krsk, хм... не знаю, что у вас не получается, но для интереса создал класс, подобный вашему... Никаких проблем. Собственно, листинги ниже...

fLanSwitch.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
#ifndef fLanSwitchH
#define fLanSwitchH
//---------------------------------------------------------------------------
class TLanSwitch {
  private:
    char *Mac;
  public:
    TLanSwitch();
    ~TLanSwitch();
    int NumPorts;
    char *ReturnMac();
    void SetMac(char *NewMac);
};
//---------------------------------------------------------------------------
#endif
fLanSwitch.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//---------------------------------------------------------------------------
#include "fLanSwitch.h"
#include <iostream>
//---------------------------------------------------------------------------
TLanSwitch::TLanSwitch()
{
  Mac = new char[12];
}
//---------------------------------------------------------------------------
TLanSwitch::~TLanSwitch()
{
  delete Mac;
  Mac = NULL;
}
//---------------------------------------------------------------------------
void TLanSwitch::SetMac(char *NewMac)
{
  std::strcpy(Mac,NewMac);
}
//---------------------------------------------------------------------------
char *TLanSwitch::ReturnMac()
{
  return Mac;
}
//---------------------------------------------------------------------------
Test.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//---------------------------------------------------------------------------
#include <iostream>
#include "fLanSwitch.h"
//---------------------------------------------------------------------------
int main(int argc, char *argv[])
{
  std::cout << "Creating an object ..." << std::endl;
  TLanSwitch *LanSwitch = new TLanSwitch;
  std::cout << "Setting new MAC-address..." << std::endl;
  LanSwitch->SetMac("AABBCCDDEEFF");
  std::cout << "Current MAC-address is:\t" <<   LanSwitch->ReturnMac() << std::endl;
  std::cout << "Deleting an object ..." << std::endl;
  delete LanSwitch;
  LanSwitch = NULL;
 
  std::system("pause");
  return 0;
}
//---------------------------------------------------------------------------
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
29.12.2010, 21:34
ТС, если надумаешь, скинь мне куда-нибудь твой нехороший файл, но обязательно БЕЗО ВСЯКОГО РАСШИРЕНИЯ!
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
30.12.2010, 09:02  [ТС]
kravam, каким способом его нужно получить без расширения? Если просто переименовать и стереть то что после точки и точку потянет?

Добавлено через 50 секунд
MikeSoft, спс, приду домой попробую запустить.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
30.12.2010, 17:58
Цитата Сообщение от Woody-krsk Посмотреть сообщение
kravam, каким способом его нужно получить без расширения? Если просто переименовать и стереть то что после точки и точку потянет?
Конечно.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
30.12.2010, 18:08
Господа, есть еще один вариант. Именно такая ошибка выскочит, если в предыдущем включенном хедере не стоит, например завершающей точки с запятой.

Короче, смотреть надо - что в конце предыдущего хедера.
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
30.12.2010, 18:41
Цитата Сообщение от Black Fregat Посмотреть сообщение
Господа, есть еще один вариант. Именно такая ошибка выскочит, если в предыдущем включенном хедере не стоит, например завершающей точки с запятой.
Если я не ошибаюсь, это должен быть сгенерирован Warning. Точно такой же, как и в случае, когда отсутствует завершающая пустая строка.
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
31.12.2010, 12:07  [ТС]
Black Fregat, если честно не совсем понял.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
31.12.2010, 17:36
Цитата Сообщение от Woody-krsk Посмотреть сообщение
Black Fregat, если честно не совсем понял.
1) Ведь заголовочный файл не напрямую из проекта вызывается, он включен в какой-то .cpp через #include, так ведь?
2) В том же .cpp смотрим #include, который стоит прямо перед этим. Или, как вариант, смотрим #include, который включен прямо в наш заголовочный файл.
3) Короче говоря, наша задача - найти тот код, который прошел через компилятор непосредственно перед тем местом, которое вызывает ошибку. Большая вероятность, что ошибка именно там. И наиболее часто встречается отсутствие точки с запятой после определения класса или структуры.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
31.12.2010, 18:36
Короче я не знаю, поможет или нет. Мне тс прислал нехороший файл, я его подключаю к проекту и он тоже глючит. Потом меняю по очереди то нехороший файл, то нормальный но такого же содержания. Первый глючит, второй нет. В чём дело? Я открыл оба в hex редакторе и так и есть, нашёл отличие. Причём символ печатаемый, но невидимый глазу.

В конце нехорошего файла стоял ПРОБЕЛ. А моя IDE ругается- не должно быть пробела на конце файла- исполняемого или заголовочного- неважно. А ведь пробел не увидеть в редакторе! Ну в общем я его убрал и всё заработало.

И, кстати, потом как я ни старался ВРУЧНУЮ вставить пробел в конец файла- IDE не давала. То есть она САМА дописывала после пробела переход на новую строку. И файл становился политкорректным.
А ведь файл с пробелом на конце мне прислал Woody-krsk!

Так что смотри может покопаешься всё же hex-редактором, может уберёшь этот пробел. Хотя я помню, вроде у тебя на другую строку ругалось. Если чё могу прислать файл без пробела, также без расширения, сам добавишь .h или чё там и подсоединишь к проекту.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
31.12.2010, 20:06
Цитата Сообщение от kravam Посмотреть сообщение
А ведь пробел не увидеть в редакторе!
- кто сказал ? а в опциях редактора поставить - "Show tab, space & line breaks" ? - но - "нормальные герои всегда идут в обход" , я понимаю ...
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
01.01.2011, 18:19  [ТС]
kravam, странно что вначале то она его не записывала, почему начала вдруг? Думаю без пробела от файла толку особо нет, надо самому научиться удалять, но если честно меня эта необходимость расстраивает... А ты какой средой пользуешься?

LK, можно по пунктам как туда добраться, я еще совсем ньюфаг в кодинге и в борланде в том числе.

Добавлено через 11 минут
Вот сейчас специально проверил, в том файле где я переписывал пример из книги пробела в конце нету... Что делать? Снести и поставить заново? Так на VM это тоже вылезло, получается не поможет...
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
01.01.2011, 18:42  [ТС]
MikeSoft,
Миниатюры
Заголовочный файл класса, что не так?:/  
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.01.2011, 19:05
У меня DEV C++, да там ничё страшного. Если есть пробел в конце файла, то компилятор напишет:

WARNIHG no newline at end of file
Предупреждение: отсутствует новая строка в файле

Ну и всё, удаляешь пробел как обычные символы клавишей DELETE, помогает.

Я не знаю, если твой компилятор подобное предупреждение выдаёт, то удаляй пробел, как я, а если нет, то и ладно, пусть так и остаётся. Можно ведь так написать компилятор, чтобы он не обращал на пробел В КОНЦЕ ФАЙЛА никакого внимания- ну есть он да и есть, это же не пробел внутри кода! (Скорее всего если у тебя предупреждений никаких таких нет, то твой компилятор не обращает на пробел в конце файла никакого внимания)

Добавлено через 3 минуты
Woody-krsk, какая у тебя среда?
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
01.01.2011, 19:21  [ТС]
kravam, чот похоже дело не в пробеле, вот тут мне показывает что пробела нет, тем не менее ошибка не исчезла.
http://rghost.ru/3831442

А вот это, не смотря на пробел, ошибок не вываливает почему-то, хотя когда я его написал они были.
http://rghost.ru/3831466

Добавлено через 42 секунды
kravam, C++ Builder 6.0
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
01.01.2011, 21:15
Повторяю, ошибка на первой строчке файла не может возникнуть из-за пробела в последней.

Выложили бы уже где-нибудь ошибочный проект целиком..
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
01.01.2011, 23:26
так там же четко написано - "Синтаксическая ошибка объявления" - вот и начинайте плясать оттуда.

Добавлено через 9 минут
Цитата Сообщение от Woody-krsk Посмотреть сообщение
[b]LK, можно по пунктам как туда добраться, я еще совсем ньюфаг в кодинге и в борланде в том числе.:sorry
- открываете настройки среды - Tools->Options... - и ищете - очень даже полезное занятие для общего развития. В RAD XE оно тут: Main Menu : Tools->Options...->Editor Options->Sourse Options : чекбоксы Show Tab Character , Show Space Character , Show Line Breaks . Как найти Main Menu рассказать ?
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
02.01.2011, 07:15  [ТС]
LK, main mune сам нашел, о опциях среди на первый взгляд нигде похожего не заметил, может спросонья, потом еще разок перемотрю повнимательнее.

Black Fregat, пожалуйста
http://rghost.ru/3835512
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.01.2011, 07:38
Цитата Сообщение от Woody-krsk Посмотреть сообщение
LK, main mune сам нашел, о опциях среди на первый взгляд нигде похожего не заметил, может спросонья, потом еще разок перемотрю повнимательнее.
- какая версия среды ?
предложение было :
Цитата Сообщение от Black Fregat Посмотреть сообщение
Выложили бы уже где-нибудь ошибочный проект целиком..
- а не огрызки.
0
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
02.01.2011, 07:51  [ТС]
LK, чем плохо то что я выше выложил? У меня из законченных более менее с 3мя файлами только один проект и там неведомым образом уже нет этой ошибки. хотя когда оно писалось, ошибка вылазила. Сейчас за другое сел, если получится доделать нормально, выложу его целиком.
Version 6.0 Build 10.157
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.01.2011, 08:14
1. Я к тому, куда цеплять try.h в том, что в проекте из архива ? Иногда простой Build помогает избавиться от "неведомой" непонятки .
2. В опциях Version 6.0 Build 10.157 - где искать - не помню - но должно быть. Может, оно запрятано в Project->Option (или Project->Preferences - не помню ) , хотя маловероятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.01.2011, 08:14

Что такое заголовочный файл и для чего он нужен?
Я только начинаю изучать Qt. И во всех книгах, которые я начинал читать, и во всех уроках в интернете пишут непонятные записи в этот...

Что не так в методе класса?
void Player::AddBody()//Делает змею больше { for(a=999; a&gt;0; a--) { if(snake.GetOk()==1&amp;&amp;snake.GetOk==1) { ...

Отделение класса в отдельные файлы (заголовочный и исполняемый)
Добрый день! Появилась проблема с созданием класса в отдельный файл: точнее объявление в &quot;.h&quot;-файле, а определение в другом cpp...

Вынос шаблонной функции в заголовочный файл и файл с реализацией
Имеется шаблонная функция, которую я помещаю в файл реализации templ.cpp: #include &quot;declare.h&quot; template &lt;class...

Вложенные классы, зона видимости класса, заголовочный фаил
Добрый день! Пока писал вопрос нашел ответ)) Но возник другой! Class A { public: void GetInfoA() ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 31.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru