|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.09.2013, 22:03 | #31 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
В данном случае я не вижу разницы. А если у нас 20 мемберов типа int? Писать их через запятую в списке... я бы лучше в теле написал, в столбик. Так проще читать.
|
08.09.2013, 22:18 | #32 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
К тому же, если будет много мемберов (встроенного типа), то в хэдере некрасиво будет смотреться список (+ значения по умолчанию). Я бы лучше убрал инициализацию в тело (в файл реализации). Ну 20 много, это я перегнул. Аргументы конструктора в числе 20 - это слишком. Пусть будет, скажем около 10, то в .cpp-файл их.
|
08.09.2013, 22:43 | #33 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Во-вторых, в списках так же столбиком пишут: Код:
И смотрится оно читабельно, ибо "канонично" (распространенная практика). Ну а самое главное: чем больше интов, тем больше будет просадка производительности если не использовать список инициализации. Поэтому, если интов будет много - то это как раз таки хорошая причина использовать именно список. Цитата:
То бишь, их можно вынести в спп файл точно так же, как и туловище. |
||
08.09.2013, 23:13 | #34 | |||||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Цитата:
Цитата:
Код:
Цитата:
Цитата:
Цитата:
Cat.h Код:
Код:
Код:
|
|||||
08.09.2013, 23:18 | #35 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Даже вот так читабельнее будет, если запятаю перенести, как у тебя в примере (переменные на одном уровне теперь):
Код:
|
09.09.2013, 01:51 | #36 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
8Observer8,
"Для объектов встроенных типов вроде numTimesConsulted нет разницы по затратам между инициализацией и присваиванием, но для единообразия часто лучше инициировать все посредством списка инициализации членов"(c)Мейерс А, ну я кажись понял: Код:
Код:
Действительно, второй вариант делает все ровно тоже самое, что и первый. Моя ошибка была в том, что я почему то не подумал что: "ничего не делающий конструктор" - бесплатен. Потому что компилятор тупо ничего не делает. /ps На самом деле у примитивов вообще нет конструкторов. Да и сами эти примитивы - наследство языка си, где вообще нет конструкторов. Но по правилам с++, все типы без исключений имеют конструкторы. И примитивы тоже. Так было сделано, что бы в шаблонах можно было единообразно обрабатывать любые типы: и примитивы и классы. Поэтому, конструкторы примитивов - фиктивны. С точки зрения пользователя они как бы есть, но с точки зрения кухни компилятора - он имитирует их работу. Это вызывает некоторую ассимитричность: Для классов: Код:
Но у примитивов есть "как бы" два дефолтных конструктора: 1. Код:
Поэтому, он бесплатен. Но я видимо так заморочился с шаблонами и унифицированными обработками, что привык думать что у любых типов всегда запускается ctor И для облегчения понимания обозвал его "ничего не делающим" но все таки конструктором, а правильно думать "отсутствие конструктора" 2. Код:
Последний раз редактировалось _Bers; 09.09.2013 в 02:03. |
09.09.2013, 22:20 | #37 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
Спасибо!!!
|
10.09.2013, 18:03 | #38 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
А я все же, вернусь к коду
Код:
|
10.09.2013, 18:22 | #39 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
*DELETED*
Прошу прощения - не посмотрел на сигнатуру Метод() и Метод(int). Последний раз редактировалось Igor95; 10.09.2013 в 19:19. |
10.09.2013, 18:36 | #40 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
Ох, ты.
Я думал, что так надо. Спасибо!! Щас я еще на код посмотрю. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прошу прощения. Но у меня опять проблема. Написал код но что то неправельно потправте меня. | Sergey 23 | Visual C++ | 2 | 15.09.2012 19:59 |
CheckBox, что-то у меня не получается... | Snekich | Microsoft Office Excel | 2 | 18.12.2011 20:12 |
Меня что, кто-то атакует? | Altera | Свободное общение | 9 | 03.10.2010 18:34 |
Меня хакнули, что делать? | Alex Cones | Свободное общение | 6 | 03.03.2010 23:14 |
что-то у меня не получается | dinozavr | Помощь студентам | 10 | 22.04.2009 21:45 |