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

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со строками, поиск нужных элементов и их вывод http://www.cyberforum.ru/cpp-beginners/thread649180.html
Дана строка, состоящая из групп нулей и единиц. Подсчитать количество единиц в группах с нечетным количеством символов. Вот попробовал, но не работает, и ошибки не вижу :-| int i,Length; char str,str2; cout << "Input the string: "; gets(str); /// Считывание строки Length = strlen(str); for (i=0; i<=Length; i++) {
C++ TreeView в visual c++ Здравствуйте уважаемые форумчане! Недавно начал программировать не только для процесса получения образования, но и для себя. Пишу небольшое графическое приложение в MS Visual C++ Express работающее с TreeView, которое создавало бы дерево на основе имеющегося текста. Я хочу сделать что бы программа определяла скажем до 3-х подуровней при создании в дереве. Из всех примеров я нашёл пока только... http://www.cyberforum.ru/cpp-beginners/thread649169.html
С++ Шахматная доска C++
Помогите пожалуйста с заданием. Нужно сделать шахматную доску 16*16 и пользователь должен ввести координаты звездочек которые расположатся на доске. Потом программа должна найти кратчайший путь из точки 16*16 в точку 1*1. Нужно обходить звездочки. По диагонали передвигаться нельзя. Я сделал доску, ввод звезд, но не могу сделать обход звезд...
C++ Работа с БД + Поиск по БД C++
Всем привет форумчане! Звучит так "Система учета успеваемости студентов" Тобишь к программе прилагается БД любая хоть MySQL. Что делает программа? Обычный пользователь может вбить туда студента ФИО, Группа в кот. учица и предметы с оценками и + поиск по БД. Нужна помощь, жду знатоков форума! Спасибо.
C++ Заполнение массива случайным числом http://www.cyberforum.ru/cpp-beginners/thread649112.html
Забыл указать, что нужно вещественное число А и B - правый и левый диапазоны. ar = A + rand() % (B - A + 1); А если число вещественное?
C++ Заполнение массива случайным числом Простите забыл указать. Как заполнить массив случайным вещественным. А и B - правый и левый диапазоны. ar = A + rand() % (B - A + 1); А если число вещественное? подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,243
Записей в блоге: 3
01.02.2015, 00:49     Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию?
Цитата Сообщение от hoggy Посмотреть сообщение
В общем случае это может быть нужно тогда,
когда требуется гарантировать неизменность данных.
Вы говорите о необходимости статических констант? А я спросил о том, зачем может понадобиться куча одинаковых по значению копий (мемберов как вы говорите).
Фраза:
Цитата Сообщение от IGPIGP Посмотреть сообщение
каждый будет иметь свою копию в отличие от настоящей статической константы.
в ней ясно, что речь не о статической константе, а о константе члене. И о бессмысленности её инициализации литералом, а не внешним параметром. Но Вы хотите не увидеть и пишете:
Цитата Сообщение от hoggy Посмотреть сообщение
Она была и остается обычным мембером класса.
Хотя нигде не говорилось иного.
Ещё фраза:
Цитата Сообщение от IGPIGP Посмотреть сообщение
А присвоение при объявлении и в теле конструктора это инициализация. Хотя синтаксически - присвоение.
Тут перечислены 2 случая, но не через запятую а с союзом "и":
a) int a = 123;//глобально, локально, как угодно
б) объявление в классе, а инициализация присвоением в конструкторе. Это вопрос скользкий и в общем случае наверное инициализации тут нет, а есть присваивание. Не буду спорить, - неточно сказал.
Но вопрос ТС:
Цитата Сообщение от RASHFor Посмотреть сообщение
а когда можно заменить конструктором по умолчанию?
оставляет только догадываться о чём он пытался спросить. Возможно о том, что когда в членах определены конструкторы преобразования и не определены конструкторы по умолчанию, то инициализация в списке, это способ гарантирующий инициализацию до вызова любого из методов. Однако, судя по тому как вопрос задан, это наверное и хорошо, что никто не стал об этом говорить. Надеюсь продолжения не будет.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru