Форум программистов, компьютерный форум CyberForum.ru

Почему конструктор не должен иметь возвращаемое значение? - C++

Восстановить пароль Регистрация
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
13.02.2013, 17:21     Почему конструктор не должен иметь возвращаемое значение? #1
Почему конструктор не должен иметь возвращаемое значение? Мне кажется это было бы полезным.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 17:21     Почему конструктор не должен иметь возвращаемое значение?
Посмотрите здесь:

возвращаемое значение функции C++
C++ ПОчему не вызывается конструктор копирования? Должен вызываться!
C++ Возвращаемое значение (класс)
C++ Возвращаемое значение функции
C++ когда должен вызываться конструктор?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
13.02.2013, 17:33     Почему конструктор не должен иметь возвращаемое значение? #2
Цитата Сообщение от bgm123 Посмотреть сообщение
Мне кажется это было бы полезным.
Например?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
13.02.2013, 17:38     Почему конструктор не должен иметь возвращаемое значение? #3
Цитата Сообщение от bgm123 Посмотреть сообщение
Почему конструктор не должен иметь возвращаемое значение?
Потому что сказано:
No return type (not even void) shall be specified for a constructor. A return statement in the body of a constructor shall not specify a return value. The address of a constructor shall not be taken.
Цитата Сообщение от bgm123 Посмотреть сообщение
Мне кажется это было бы полезным.
и чем же?
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
13.02.2013, 17:45  [ТС]     Почему конструктор не должен иметь возвращаемое значение? #4
Цитата Сообщение от Croessmah Посмотреть сообщение
и чем же?
ну например при попытке неверной инициализации можно было бы возвращать какое-то значение, сигнализирующее об этом факте.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
13.02.2013, 17:51     Почему конструктор не должен иметь возвращаемое значение? #5
Цитата Сообщение от bgm123 Посмотреть сообщение
ну например при попытке неверной инициализации
Класс должен быть спроектирован так, чтобы не допускать этого, а иначе смысл вообще писать класс?
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
13.02.2013, 17:59     Почему конструктор не должен иметь возвращаемое значение? #6
Цитата Сообщение от Croessmah Посмотреть сообщение
Класс должен быть спроектирован так, чтобы не допускать этого
А для всего остального есть MasterCard, тьфу, исключения
Croessmah
13.02.2013, 18:01
  #7

Не по теме:

Цитата Сообщение от HighPredator Посмотреть сообщение
А для всего остального есть MasterCard, тьфу, исключения
Если в конструкторе не перехватить исключения, то объект будет не достроен.
Деструкторы вызываются только для достроенных объектов.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 18:07     Почему конструктор не должен иметь возвращаемое значение?
Еще ссылки по теме:

Возвращаемое значение C++
C++ Возвращаемое значение функции
Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Jupiter
13.02.2013, 18:07     Почему конструктор не должен иметь возвращаемое значение?
  #8

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Если в конструкторе не перехватить исключения, то объект будет не достроен.
Деструкторы вызываются только для достроенных объектов.
RAII

Yandex
Объявления
13.02.2013, 18:07     Почему конструктор не должен иметь возвращаемое значение?
Ответ Создать тему
Опции темы

Текущее время: 21:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru