| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Все ли свойства класса, должны инициализироваться |
| Автор: boostcoder 30.7.2010, 08:49 |
| всем привет. вопрос в теме. аргументы за, и против? |
| Автор: Alca 30.7.2010, 09:35 | ||
все ли члены класса? |
| Автор: Fazil6 30.7.2010, 09:37 |
а что, есть аргументы против? |
| Автор: Abyx 30.7.2010, 09:49 |
| зачем спрашивать одно и то же на разных форумах %) то что инициализировать не обязательно - инициализировать не обязательно %) |
| Автор: Earnest 30.7.2010, 09:51 |
| Все члены должны инициализироваться в конструкторе. А в списке инициализации или в "теле" - не так важно в общем случае. Например сложные выражения я предпочитаю писать в "теле", если, конечно, можно оставить член без инициализации. Кроме того, если член класса имеет конструктор по-умолчанию, то упоминать его не стоит, это только засоряет код. |
| Автор: boostcoder 30.7.2010, 09:55 |
пример? |
| Автор: mrbrooks 30.7.2010, 10:07 |
| честно говоря не совсем ясна проблема. в чем соль то ТС? что мешает жить? |
| Автор: Earnest 30.7.2010, 13:12 |
| Почему же? Я ведь не написала - инициализироваться явно. Просто "инициализироваться". Собственно, речь может идти в основном о встроенных типах, которые по-умолчанию не инициализируются. |
| Автор: boostcoder 30.7.2010, 13:32 | ||||
да. к примеру:
а нет проблемы. просто меня часто критикуют коллеги за придирчивость к коду. вот сегодня с утра спорили об этом с этим все понятно. но спор возник из-за переменных классового типа. |
| Автор: Abyx 30.7.2010, 13:47 | ||
http://wasm.ru/forum/viewtopic.php?id=38086 странно видеть темы про инициализацию членов класса каждые два дня |
| Автор: Earnest 30.7.2010, 13:47 |
В смысле, инициализировать ли явно члены, имеющие нормальные конструкторы по-умолчанию? Тогда я просто не поняла, пардон. Считаю, что не надо. Код типа: CMyCompounClass::CMyCompoundClass(): m_FirstMember (CFirstMember()), m_SecondMember (CSecondMember()), ... смотрится на редкость уродливо. И никакой новой информации не сообщает. Ну есть у члена конструктор по-умолчанию. Так если бы его не было, компилятор орал бы как резаный. |
| Автор: boostcoder 30.7.2010, 13:52 | ||||||
я на том форуме не реган. так что хз о чем вы. Добавлено @ 13:54 Earnest, какой-то не правильный у вас пример. полагаю так:
по моему наоборот. |
| Автор: mes 30.7.2010, 13:56 |
имхо имелось ввиду чуть _проще_: m_FirstMember (), Добавлено @ 13:58 boostcoder, имхо писать нужно минимум, но так чтоб был ясен смысл происходящего.. Если в конкретном случае необходимо явно указать, то указывайте, иначе поберегите клавиатуру |
| Автор: boostcoder 30.7.2010, 14:14 |
| мнение большинства понятно. всем спасибо. |