Форум программистов, компьютерный форум CyberForum.ru

Инициализация статического массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция, возвращающая текущую дату http://www.cyberforum.ru/cpp-beginners/thread291447.html
никак толком не могу разобратса с библиотекой time.h можите сказать точную функцию которая возвратит текущую дату и какие аргументы она принемает , и не в формате строки... а то что то у меня не выходит с time() ничего...
C++ Сосчитать количество единиц Сосчитать количество единиц в двоичной записи числа i. http://www.cyberforum.ru/cpp-beginners/thread291435.html
Умножение матрицы S+1 раз C++
Всем привет! помогите пожалуйста решить задачку на С++: 1. умножение матрицы самой на себя s+1 раз 2.умножение матрицы на вектор произвольный ( можно взять Е-единич.) 3.(умножение матрицы,умноженной на себя s+1 раз, на произвольный вектор ) / ( матрица степени s * произвольный вектор) //обеспечить хранение матрицы s и матрицы s+1.
C++ Определить количество повторений
Определить количество повторений каждой из цифр 1,2...9 в числе N в степени N, N<=1000
C++ У покупателя есть n монет достоинством H(1)...H(n) http://www.cyberforum.ru/cpp-beginners/thread291426.html
У покупателя есть n монет достоинством H(1)...H(n). У продавца есть m монет достоинством B(1)...B(l). Может ли купить покупатель вещь стоимостью S так, чтобы у продавца нашлась точная сдача (если она необходима)
C++ Константа. Надо найти константу(количество строк) в будущей матрице, если известно сколько элементов будет и количество столбцов. И тогда как записать константу выражением, или оператором? ОЧЕНЬ нужно. А то бьюсь уже с этой константой, все остальное сделал. Спасибо. подробнее

Показать сообщение отдельно
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
13.05.2011, 20:23     Инициализация статического массива
Это еще не все...

Как это ни странно, но большие проблемы возникают при попытках объявить в классе константный массив встроенного типа! Как мы уже выяснили, константы нельзя инициализировать в теле конструктора, значения им присваиваются только в списке инициализации конструктора. Однако для константного массива встроенного типа не работает даже инициализация нулем.

ПРИМЕЧАНИЕ
Этот вопрос практически не отражен в стандарте, поэтому компиляторы ведут себя по-разному. В системе Visual C++.NET 2003 выдается ошибка компиляции C2439, а Borland C++ Builder 6 выдает только предупреждение W8038 о том, что массив не инициализируется.

Не проходит и отмена константности. Например, зададим массив m0 как константный, а в теле конструктора определим инициализацию в цикле:
C++
1
2
for (int i = 0; i < 10; ++i) 
    const_cast<int>(m0[i]) = 0;
Однако и Visual C++.NET 2003, и Borland C++ Builder 6 отказываются компилировать такой цикл.
Удивительно, но для константного массива из объектов не встроенного типа задавать инициализацию нулем разрешается. Для этого в классе должен быть определен конструктор без аргументов, который вызывается для инициализации каждого элемента константного поля-массива.
 
Текущее время: 22:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru