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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2013, 22:36   #1
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию Что такое блок инициализации конструктора

В чем достоинство его использования наряду с обыкновенной реализацией конструктора...
Igor95 вне форума Ответить с цитированием
Старый 28.04.2013, 00:46   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Igor95 Посмотреть сообщение
В чем достоинство его использования наряду с обыкновенной реализацией конструктора...
Попробуй указать в классе в качестве мембера ссылку, или константу.

Код:
struct Example
{

   const int val;
};
В списках инициализации конструктора мемберы инициализируются (происходят запуски их конструкторов).

В тот момент, когда запускается туловище конструктора, все мемберы уже построены.

Это означает, что в туловище конструктора объекты не инициализируются, а лишь модифицируются

Поэтому, если ты задаешь в туловище конструктора для мемберов некоторое стартовое значение, то имей ввиду - стартовые значения они уже получили. И теперь ты их просто снова меняешь. То бишь, выполняешь двойную работу, зазря расходуя процессорное время.

Поэтому, если ты хочешь писать максимально быстрый код, то будешь инициализировать мемберы в списках инициализации, а туловище конструктора использовать только для окончательной конфигурации агрегата для нестандартных задач
_Bers вне форума Ответить с цитированием
Старый 28.04.2013, 02:07   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

+если класс содержит в себе другие классы, можно вызывать их конструкторы(а не дефолтный)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.04.2013, 16:57   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

понятно, спасибо огромное)
Igor95 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов Конструктора при создании обьекта. Что произойдет.. imaginary C# (си шарп) 1 12.10.2011 08:19
что такое f. spezzA Паскаль, Turbo Pascal, PascalABC.NET 1 13.06.2011 16:21
Что такое хорошо, а что такое плохо... EL_MoC Microsoft Office Word 6 14.04.2011 18:49
Автоматическое преобразование на основе первого аргумента конструктора в вызов самого конструктора jennya Visual C++ 8 03.10.2010 19:03
то такое мастерство в программировании, что такое мастер программист и что он может? Cezar Свободное общение 29 02.06.2007 23:48