Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 16:55   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию массивы в заголовочных файлах

в заголовочном файле в описании класса пишу:
Код:
int _const_iMas[4] = {0x63,0x7c,0x78,0x79};
В итоге компилятор подчёркивает знак '=' и выдает ошибки:

Error 1 error C2059: syntax error : '{' c:\users\dimarik\desktop\lalala\lal ala\file.h 15
Error 2 error C2334: unexpected token(s) preceding '{'; skipping apparent function body c:\users\dimarik\desktop\lalala\lal ala\file.h 15
Error 3 error C2059: syntax error : '{' c:\users\dimarik\desktop\lalala\lal ala\file.h 15
Error 4 error C2334: unexpected token(s) preceding '{'; skipping apparent function body c:\users\dimarik\desktop\lalala\lal ala\file.h 15
Dimarik вне форума Ответить с цитированием
Старый 20.03.2011, 17:13   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Объясни пожалуйста, что за запись такая — _const_iMas?

Почему не const int _iMas? Или, в твоём случае, static const _iMas.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 20.03.2011, 17:26   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

оу. Это я криово скопировал. Писал:
Код:
const int _const_iMas[4] = {0x63,0x7c,0x78,0x79};
ну _ - потому что это поле класса, const - так как константа - i - так как int
Dimarik вне форума Ответить с цитированием
Старый 20.03.2011, 17:28   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
потому что это поле класса
Ну так с этого и надо было начинать. Нельзя инициализировать таким образом неконстантные нестатические поля класса. Только в конструкторе.
netrino вне форума Ответить с цитированием
Старый 21.03.2011, 00:54   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Вариант 1: инициализировать этот массив в списке инициализации конструктора. В твоём случае он не подходит, ибо содержимое массива неизменно для разных экземпляров класса.
Вариант 2: сделай это поле static.

А нафига так именовать? Ну _const_iMax? Нафиг писать, что оно const? Убей венгерскую нотацию...
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 21.03.2011, 08:47   #6
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Почему нельзя void main(void) ?
coNsept вне форума Ответить с цитированием
Старый 21.03.2011, 22:41   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
Почему нельзя void main(void) ?
Стандарт C++ не допускает такой записи. То есть компилятор, соответствующий стандарту, такое скомпилировать не должен.
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на BAT-файлах Arigato Операционные системы общие вопросы 349 27.02.2024 15:21
Висуал студио 2008 С++ подключение заголовочных файлов Eros Общие вопросы C/C++ 6 11.05.2010 15:53
Константы в заголовочных файлах. jojahti Общие вопросы C/C++ 13 27.08.2009 16:03
Помогите с вопросами о файлах Дима82 Помощь студентам 5 26.05.2008 19:49