Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Hagrael
БТР - мой друг
331 / 273 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
1

Что возвращает конструктор?

12.06.2012, 13:01. Просмотров 2257. Ответов 7
Метки нет (Все метки)

Здравствуйте! Я не могу понять, как происходит присвоение вот здесь:
C++
1
object obj = object(10)
object - класс, написанный программистом. По-моему, здесь вначале создается место под то, что возвращает object(10), а после этого его данные копируются в объект obj. А после этого объект, который вернуло выражение object(10), уничтожается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2012, 13:01
Ответы с готовыми решениями:

Что можно сделать, что бы конструктор вызывался один раз при агрегировании?
Добрый день. Написал код, но два раза подряд вызывается конструктор, так как...

Что означает запись в скобках и что возвращает return
Всем привет! Начал читать книгу BecomeAnXcoder и тут появился вопрос. В...

что такое конструктор?
Обьясните плиз что такое конструктор? Это функция а что она делает и для чего?

Что такое конструктор?
Конструктор - это такие детали , как map , player, enemy.Я правильно понял?

Что делает конструктор?
Я очень плохо понял вобще. Он вроде помогает создать в памяти место для...

7
rofl113
10 / 10 / 2
Регистрация: 26.02.2012
Сообщений: 36
12.06.2012, 13:17 2
C++
1
2
3
4
5
6
7
8
9
10
class object
{
 private:
  int t;
 public:
 object (int tt)
 { 
  t=tt;
 }
}
хз лишь догадки.
0
Nick Alte
Эксперт С++
1647 / 1019 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
12.06.2012, 16:54 3
Здесь сначала создаётся безымянный (анонимный) объект типа object, причём создаётся из числа 10. Затем этот анонимный объект копируется в свежесозданную переменную obj и уничтожается за ненадобностью. Переменная obj остаётся жить. Оптимизирующий компилятор затем, разумеется, выкинет ненужные операции.
2
Hagrael
БТР - мой друг
331 / 273 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
13.06.2012, 06:51  [ТС] 4
Nick Alte, понятно, спасибо. А что за ненужные действия он выкинет? Вместо создания 2-х объектов и копирования содержания одного в содержание другого будет создание одного объекта сразу же с нужными параметрами?
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
13.06.2012, 10:32 5
Hagrael, конструктор неявно возвращает экземпляр того класса, членом которого является.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
13.06.2012, 10:49 6
Цитата Сообщение от taras atavin Посмотреть сообщение
конструктор неявно возвращает экземпляр
Конструктор ничего не возвращает. На месте вызова конструктора оказывается созданный объект. Который был там и до вызова конструктора.
0
Nick Alte
Эксперт С++
1647 / 1019 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
13.06.2012, 21:32 7
Цитата Сообщение от Hagrael Посмотреть сообщение
Вместо создания 2-х объектов и копирования содержания одного в содержание другого будет создание одного объекта сразу же с нужными параметрами?
Именно так. Впрочем, в случае компиляторов Borland/Embarcadero не факт, что они так сумеют.
1
Hagrael
БТР - мой друг
331 / 273 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
15.06.2012, 07:27  [ТС] 8
Nick Alte, спасибо, теперь все понятно.
0
15.06.2012, 07:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2012, 07:27

Что такое конструктор копий?
Объясните, пожалуйста, на максимально простом языке, чем отличается конструктор...

Что возвращает операто NEW
Что возвращает операто NEW ? если не достаточно памяти ??? по ходу НОЛЬ,,,,,,???

Что возвращает length?
Что возвращает s.length(), если std::string s; хранит UTF8? Длину в байтах, или...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru