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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
#1

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

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

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

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

Что означает запись в скобках и что возвращает return - C++
Всем привет! Начал читать книгу BecomeAnXcoder и тут появился вопрос. В пример приведен такой код circleArea(float theRadius) //(1) ...

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

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

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

Что такое конструктор копий? - C++
Объясните, пожалуйста, на максимально простом языке, чем отличается конструктор от конструктора копий? Может это и одно и то же, хотя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rofl113
10 / 10 / 1
Регистрация: 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;
 }
}
хз лишь догадки.
Nick Alte
Эксперт С++
1636 / 1008 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
12.06.2012, 16:54 #3
Здесь сначала создаётся безымянный (анонимный) объект типа object, причём создаётся из числа 10. Затем этот анонимный объект копируется в свежесозданную переменную obj и уничтожается за ненадобностью. Переменная obj остаётся жить. Оптимизирующий компилятор затем, разумеется, выкинет ненужные операции.
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
13.06.2012, 06:51  [ТС] #4
Nick Alte, понятно, спасибо. А что за ненужные действия он выкинет? Вместо создания 2-х объектов и копирования содержания одного в содержание другого будет создание одного объекта сразу же с нужными параметрами?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.06.2012, 10:32 #5
Hagrael, конструктор неявно возвращает экземпляр того класса, членом которого является.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
13.06.2012, 10:49 #6
Цитата Сообщение от taras atavin Посмотреть сообщение
конструктор неявно возвращает экземпляр
Конструктор ничего не возвращает. На месте вызова конструктора оказывается созданный объект. Который был там и до вызова конструктора.
Nick Alte
Эксперт С++
1636 / 1008 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
13.06.2012, 21:32 #7
Цитата Сообщение от Hagrael Посмотреть сообщение
Вместо создания 2-х объектов и копирования содержания одного в содержание другого будет создание одного объекта сразу же с нужными параметрами?
Именно так. Впрочем, в случае компиляторов Borland/Embarcadero не факт, что они так сумеют.
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
15.06.2012, 07:27  [ТС] #8
Nick Alte, спасибо, теперь все понятно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2012, 07:27
Привет! Вот еще темы с ответами:

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

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

Объясните, что выполняет этот конструктор - C++
#include <iostream> #include <cstring> using namespace std; class Str { friend ostream& operator<<(ostream&, const Str&); ...

Узнать что возвращает функция - C++
Вопрос уже задавал раньше, но никто не смог ответить :) В общем есть функция которая возвращает указатель на неизвестно что :) ....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.06.2012, 07:27
Ответ Создать тему
Опции темы

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