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

Move конструктор && - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, есть ли в массиве значение, равное (min +max) / 2 http://www.cyberforum.ru/cpp-beginners/thread1021644.html
Здравствуйте , решите пожалуйста задачку) Поступила на заочку , а там ничего не объясняют...как учиться ума не приложу( такую дали : Определить, есть ли в массиве L значение, равное (min +max) / 2 и вывести номер первого значения, если есть, иначе сообщить, что нет.
C++ Постройте таблицу значений функции с помощью функции Постройте таблицу значений функции y=f(x) для Х€ с шагом h. Если в некоторой точке х функция не определена, то выведите на экран сообщение об этом. Замечание. Для решения задачи использовать вспомогательную функцию. y=3х+4:корень х2-1 http://www.cyberforum.ru/cpp-beginners/thread1021639.html
C++ Определить процедуру, позволяющую распознавать полные квадраты
Дано натуральное число N. Среди чисел 1, 2, 3, …., N найти все, которые можно представить в виде суммы квадратов двух натуральных чисел. (Определить процедуру, позволяющую распознавать полные квадраты).
C++ Изобразите скатывание шарика
Изобразите скатывание шарика по кривой, заданной уравнением y = (x-1)2 + ex на интервале . Как только шарик достигает конца кривой, он начинает двигаться в обратном направлении. Программа останавливается, если нажата клавиша Esc.
C++ Постройте график функции http://www.cyberforum.ru/cpp-beginners/thread1021631.html
Постройте график функции y = (x-1)2 + ex на интервале . Обозначьте оси координат, нарисуйте координатную сетку, укажите цены делений и пределы изменения координат x и y. Оси координат нарисуйте черным цветом, координатную сетку – серым, а график функции – розовым.
C++ Определить сколько раз встречается максимальная цифра в числе Дано натуральное число. Определить, сколько раз в нем встречается максимальная цифра (например, для числа 132233 ответ равен 3, для числа 46336 – 2). подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
30.11.2013, 08:05  [ТС]     Move конструктор &&
gray_fox, меня вот беспокоит следующее. Предположим, за время действия программы мне нужно создать всего три объекта:
C++
1
2
3
4
int x = 1, y = 2, z = 3;
T a(x, y, z);
T b(x * y, y, z);
T c(x, y, z + y * 2);
(Использовал снова примитивы для простоты примера)
Так вот, раньше я бы использовал конструктор вида:
C++
1
T(const int& a, const int& b, const int& c);
Неужели теперь, если я хочу иметь код более оптимизированный, мне придется делать аж 3 конструктора? Отсюда и вопрос, если я имею конструктор:
C++
1
T(const int&& a, const int&& b, const int&& c);
и передаю параметры так:
C++
1
T d(x * y, y, z);
- сработает ли это? Будет ли &&, если передается не временный аргумент, интерпретироваться как & и этот ранее полностью move конструктор "превратится" в:
C++
1
T(const int&& a, const int& b, const int& c);
- об этой "обратной совместимости" я спрашивал. Или же если стоит &&, значит передавать можно только временный объект? Т.е., действительно, в данном простом примере уже нужно 3 конструктора, а в особо извращенных случаях это всё разрастется донельзя?

И да, кстати, чтобы параметр int&& param перекинуть в объект вместо поля int field мне достаточно сделать field = param? Или нужно какой-то там std::move использовать? (просто помню, что такое есть, но не знаю, зачем. Ещё раз блог soon не перечитывал ещё)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru