С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 38
1

Какой метод вызывается при инициализации объекта

05.12.2016, 17:16. Показов 1021. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
У меня есть функция которая возвращает объект класса Point.
C++
1
2
3
4
5
6
Point func()
{
...
Point t;
return t;
}
Я думал, что если я буду использовать такой код:
C++
1
Point a = func();
У меня внутри метода func() создастся объект t, а потом для создания объекта a вызовется конструктор копирования.
Я перегрузил оператор присваивания, конструктор копирования, move конструктор и move оператор присваивания:
C++
1
2
3
4
Point & operator=(const Point & point)
Point(const Point & point);
Point(Point&& point) noexcept;
Point & operator=(Point && point);
но ни один из них не вызвался. Какой метод вызывается для инициализации a? Использую компилятор mingw32.

Добавлено через 12 минут
Моя реализация:
http://ideone.com/8O4IOn
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2016, 17:16
Ответы с готовыми решениями:

Какой конструктор вызывается при value initialization объекта?
Привет, есть вот такой код, например: #include <iostream> struct Test { int data; ...

Метод в конструкторе вызывается задолго после создания объекта
Не знаю как загуглить это, поэтому обращаюсь к живым людям. Есть классы Group, Student, Subject....

В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение памяти?
В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение...

Не вызывается override метод при создании объекта через рефлексию
Воопщем у меня есть словарь, в котором записаны типы классов <enum, System.Type> Я по enum, чтоб...

2
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
05.12.2016, 17:26 2
Цитата Сообщение от R_e_n Посмотреть сообщение
ни один из них не вызвался. Какой метод вызывается для инициализации a?
Конструктор по умолчанию (или, если смотреть пример по ссылке, конструктор с двумя параметрами x,y)
Ничего более не вызывается, т.к. сработала RVO.
1
Неэпический
18109 / 10696 / 2062
Регистрация: 27.09.2012
Сообщений: 26,939
Записей в блоге: 1
05.12.2016, 17:26 3
Цитата Сообщение от R_e_n Посмотреть сообщение
но ни один из них не вызвался.
Сработала оптимизация.
Ознакомьтесь с темами "RVO", "NRVO", "copy-elision".
1
05.12.2016, 17:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2016, 17:26
Помогаю со студенческими работами здесь

Как правильно вызывается метод SaveAs объекта ActiveWorkbook?
народ может кто подскажет как правильно вызывается метод SaveAs объекта ActiveWorkbook

Blender4web какой метод вызывается каждый кадр?
Доброго времени суток! Не могу разобраться с blender4web, кто может пояснить 1й фаил) здесь все...

Ошибка при инициализации объекта окна
Приветствую всех. После создания дополнительной формы в своей программе я решил добавить её в...

При динамическом создании объекта в классе деструктор не вызывается
Добрый день еще раз. Помогите заполнить пробелы в ООП) Есть три класса: // Вспомогательный класс...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru