![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Судя по теперешнему хелпу (MSDN'у) в VC++.NET я могу написать следующее:
Придя в институт, где стоит VC++6 обнаружилось, что этакого делать нельзя. Т.е. константы надо инициализировать классическим способом А() : k(1){}, при этом "k" не должно быть статическим членом. Собственно, а как правильно с точки зрения стандарта. И выходит что это баг в VC++6? Это сообщение отредактировал(а) Royan - 8.10.2004, 13:09 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
действительно есть такая проблемка..... и я желаю получить на нее ответ
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Стандарт на эту тему я не знаю, но, судя по многочисленной литературе с примерами кода,
класический подход
где k1, k2 - члены класса, для которых не определен конструктор по умолчанию value1, value2 - параметры или иные данные верен, а значит должен быть и верен частный случай, где в членах класса есть переменная константа встроенного типа. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
По стандарту объявление статических полей в классе является всего лишь ее декларированием и только. Необходимо выполнить еще и "реализацию", то ее нужно еще и определить
В последнем случае k будет инициализирован нулем -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Хотя виноват. Действительно в стандарте только для статических констант( на статические члены-неконстанты это не распространяется) разрешена инициаализация в классе.
VC++6 в данном случае нарушает стандарт. С++Builder 6 эту возможность поддерживает -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Вроде инициализация статических членов-констант в классе разрешена только для интегральных типов.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| Улисс |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 7.10.2004 Где: за зелено-синим м орем, в длинном темном коридоре Репутация: нет Всего: нет |
А я всю жизнь пользуюсь вариантом таким:
class A { enum { k=10 }; }; работает пока везде... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |