![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
BigHeart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.3.2007 Репутация: нет Всего: нет |
ну хорошо. Допустим, мы не написали конструктор для класса, но во всех книгах написано, что если программист не создал конструктора,
то компилятор его создаст самостоятельно. Какой код будет в этом конструкторе? всё поля инициализируется нулями? |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
BigHeart, ответ на твой вопрос уже дал Fazil6.
|
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
Вопервых если неопределен конструктор поумолчанию, то невсегда компилятор будет его генерить. Например, если определены другие конструкторы. Во-вторых при вызове конструктора поумолчанию значения полей пользовательских типов будут зависеть от их конструкторов поумолчанию. Поля встроенных типов будут содержать случайные значения, кроме случая когда объект создается выражением
и при этом конструктор поумолчанию отдан на откуп компилятору т.е. чтобы поля встроенных типов были гарантировано обнулены без списка инициализации нужно чтобы все звезды сошлись без вариантов. Это сообщение отредактировал(а) Fazil6 - 12.6.2007, 01:08 |
|||
|
||||
BigHeart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.3.2007 Репутация: нет Всего: нет |
неее... Стоп. Мужчины, мы как бы начали с того, что нет такого определения, как неинициализирующий конструктор.
( по крайней мере про него никто не слышал ![]() Теперь мы разбираемся, может ли конструктор ничего не инициализировать, правильно? Добавлено через 2 минуты и 41 секунду и зачем ваабще он тогда нужен? |
|||
|
||||
BigHeart |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.3.2007 Репутация: нет Всего: нет |
Харви Дейтел |
||||
|
|||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Этого компилятор не делает точно. Кстати, для невстроенных типов данная операция очень может привести к невалидности данной переменной, то есть с ней невозможно будет работать. да, но куда ты этот ноль впихнешь? А NULL по значению 0 и есть. |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Я извиняюсь зачем его куда-то впихивать, это не мое дело. к примеру
впихнул что-ли ![]() насчет невалидности Почему? Ведь параметр приводится к типу void т.е не зависит от типа данных Это сообщение отредактировал(а) apook - 12.6.2007, 14:56 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
apook, я имел в виду std::string. Попробуй-ка его занули...
Или попробуй инициализировать нулем. |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Да здесь уже об этом говорили в самом начале -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
Послушайте, может, я один какой-то ущербный: у меня такую строку, и VC 8.0, и MinGW компилируют прекрасно (на /W4 и -Wall, соответственно, ни одного предупреждения). А во время выполнения вылетают. Это сообщение отредактировал(а) Ulysses4j - 12.6.2007, 16:46 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
ах, да... implicit constructor string::string(const char *).
Ulysses4j, не волнуйся... ты не ущербный, но писать так всё равно не нужно...
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
medveghonka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
Вопрос в точности звучал:дать определение неинициализирующего конструктора.....
|
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Ulysses4j, ну именно с 0 скопилируется, только потом вылетит на этапе выполнения при попытке сделать strlen
![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |