![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
В данном случае я не вижу разницы. А если у нас 20 мемберов типа int? Писать их через запятую в списке... я бы лучше в теле написал, в столбик. Так проще читать.
|
![]() |
![]() |
![]() |
#32 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
К тому же, если будет много мемберов (встроенного типа), то в хэдере некрасиво будет смотреться список (+ значения по умолчанию). Я бы лучше убрал инициализацию в тело (в файл реализации). Ну 20 много, это я перегнул. Аргументы конструктора в числе 20 - это слишком. Пусть будет, скажем около 10, то в .cpp-файл их.
|
![]() |
![]() |
![]() |
#33 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Во-вторых, в списках так же столбиком пишут: Код:
И смотрится оно читабельно, ибо "канонично" (распространенная практика). Ну а самое главное: чем больше интов, тем больше будет просадка производительности если не использовать список инициализации. Поэтому, если интов будет много - то это как раз таки хорошая причина использовать именно список. Цитата:
То бишь, их можно вынести в спп файл точно так же, как и туловище. |
||
![]() |
![]() |
![]() |
#34 | |||||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]() Цитата:
Цитата:
Код:
Цитата:
Цитата:
Цитата:
Cat.h Код:
Код:
Код:
|
|||||
![]() |
![]() |
![]() |
#35 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Даже вот так читабельнее будет, если запятаю перенести, как у тебя в примере (переменные на одном уровне теперь):
Код:
|
![]() |
![]() |
![]() |
#36 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
8Observer8,
"Для объектов встроенных типов вроде numTimesConsulted нет разницы по затратам между инициализацией и присваиванием, но для единообразия часто лучше инициировать все посредством списка инициализации членов"(c)Мейерс А, ну я кажись понял: Код:
Код:
Действительно, второй вариант делает все ровно тоже самое, что и первый. Моя ошибка была в том, что я почему то не подумал что: "ничего не делающий конструктор" - бесплатен. Потому что компилятор тупо ничего не делает. /ps На самом деле у примитивов вообще нет конструкторов. Да и сами эти примитивы - наследство языка си, где вообще нет конструкторов. Но по правилам с++, все типы без исключений имеют конструкторы. И примитивы тоже. Так было сделано, что бы в шаблонах можно было единообразно обрабатывать любые типы: и примитивы и классы. Поэтому, конструкторы примитивов - фиктивны. С точки зрения пользователя они как бы есть, но с точки зрения кухни компилятора - он имитирует их работу. Это вызывает некоторую ассимитричность: Для классов: Код:
Но у примитивов есть "как бы" два дефолтных конструктора: 1. Код:
Поэтому, он бесплатен. Но я видимо так заморочился с шаблонами и унифицированными обработками, что привык думать что у любых типов всегда запускается ctor И для облегчения понимания обозвал его "ничего не делающим" но все таки конструктором, а правильно думать "отсутствие конструктора" 2. Код:
Последний раз редактировалось _Bers; 09.09.2013 в 02:03. |
![]() |
![]() |
![]() |
#37 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Спасибо!!!
|
![]() |
![]() |
![]() |
#38 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
А я все же, вернусь к коду
Код:
|
![]() |
![]() |
![]() |
#39 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
*DELETED*
Прошу прощения - не посмотрел на сигнатуру Метод() и Метод(int). Последний раз редактировалось Igor95; 10.09.2013 в 19:19. |
![]() |
![]() |
![]() |
#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 |