Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.171.20] |
|
Страницы: (14) « Первая ... 10 11 [12] 13 14 все ( Перейти к последнему сообщению ) |
Сообщ.
#166
,
|
|
|
Сообщ.
#167
,
|
|
|
Память не выделится пока не проинициализируется а1 т. к. б1 определяется позже. Добавлено Цитата KILLER @ Ты же три примера приводил. Давай конкретно о чем речь. Добавлено Киля, ты не бухой случайно? Добавлено Цитата KILLER @ что на момент инициализации a1 b1 уже инициализирован Это где? |
Сообщ.
#168
,
|
|
|
Цитата shm @ Память не выделится пока не проинициализируется а1 т. к. б1 определяется позже. Так порядок инициализации не имеет значения, разве нет? Я тебе код со статической функцией еще привел 5 страниц назад. Добавлено Цитата shm @ Давай конкретно о чем речь. Третий твой пример. Цитата shm @ Это где? Т.е. не инициализирован? |
Сообщ.
#169
,
|
|
|
Цитата KILLER @ Так порядок инициализации не имеет значения, разве нет? Я тебе код со статической функцией еще привел 5 страниц назад. инициализации - нет. определения - да. Я на него тебе уже ответил. Меняешь местами определение и все должно заработать. |
Сообщ.
#170
,
|
|
|
Хорошо, зайдем с другой стороны. Чем инициализируются члены класса, в произвольном порядке инициализируемые в списке инициализации?
|
Сообщ.
#171
,
|
|
|
Цитата KILLER @ Третий твой пример. Третий мой пример по Стандарту ничем не отличается от второго. |
Сообщ.
#172
,
|
|
|
Цитата shm @ инициализации - нет. определения - да. Определение - это реализация. Я вызываю статическую функцию, определение которой уже есть на этапе инициализации. new B() - это инициализация или определение? |
Сообщ.
#173
,
|
|
|
Цитата KILLER @ Чем инициализируются члены класса, в произвольном порядке инициализируемые в списке инициализации? Чем инициализируешь. Другое дело, что это может быть само не еще инициализировано, что и видно в твоем примере. Добавлено Цитата KILLER @ Определение - это реализация определение это: int a; (1) std::string b; (2) char c; (3) ... В скобках подписал порядок инициализации. |
Сообщ.
#174
,
|
|
|
Цитата shm @ Чем инициализируешь. А чем я в своем примере их инициализирую? член класса b1 я инициализирую new B - созданный объектом, а член класса a1 - я инициализирую результатом статической функции, принимающей B* |
Сообщ.
#175
,
|
|
|
Цитата KILLER @ new B() - это инициализация или определение? Это инициализация. |
Сообщ.
#176
,
|
|
|
Цитата shm @ определение это: int a; (1) std::string b; (2) char c; (3) Это не определение, это объявление. |
Сообщ.
#177
,
|
|
|
Цитата KILLER @ член класса b1 я инициализирую new B - созданный объектом, а член класса a1 - я инициализирую результатом статической функции, принимающей B* Да. Добавлено Цитата KILLER @ Это не определение, это объявление. Хорошо, путь будет объявление, ну ни как не реализация. |
Сообщ.
#178
,
|
|
|
Цитата shm @ Это инициализация. Хорошо, вернемся, к нашим баранам. По стандарту - инициализации плевать как я и где что вызову. Ну так же? Ну вот я сначала передал объек, а потом его инициализировал. Разница есть? Ведь по стандарту - не имеет значения в каком порядке я что инициализирую. Или имеет? |
Сообщ.
#179
,
|
|
|
Цитата KILLER @ Ведь по стандарту - не имеет значения в каком порядке я что инициализирую. В списке инициализации - нет. |
Сообщ.
#180
,
|
|
|
Цитата shm @ Хорошо, путь будет объявление, ну ни как не реализация. определение это и есть реализация. Я нигде ничего не реализовывал. Я просто передал в Calculate объект типа B*, который в свою очередь инициализируется в списке инициализации конструктора после a1. Но так как порядок инициализации значения не имеет - я ожидаю рабочуюю программу, а у меня фейл. Почему? Добавлено Цитата shm @ В списке инициализации - нет. Как нет? Добавлено Цитата shm @ Цитата Ведь по стандарту - не имеет значения в каком порядке я что инициализирую. В списке инициализации - нет. Ыыы? |