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

Лишнее копирование - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти в строке точку http://www.cyberforum.ru/cpp-beginners/thread522446.html
Всем привет ! Нужно найти в строке точку. Делаю #include <iostream> #include <string> //--------------------------------------------------------------------------- using std::cout; using std::cin; using std::endl;
C++ Определить самую большую строку из 5 произвольных строк Задача 57 Определить самую большую строку из 5 произвольных строк. Задача 34. Получить действительную матрицу 7х7, первой строке которой задается формулой: , Второй строка которой задается формулой а каждый следующяя строка - сума двох предыдущих. Заранее благодарен!) :) http://www.cyberforum.ru/cpp-beginners/thread522443.html
C++ Игра спички
Возможно кому-то потребуется код или просто поиграть.строго несудите оки если есть ошыбка то сорь , С++ ток 2 месяц изучаю. #include<iostream> using namespace std; void main() { setlocale(LC_ALL, "Russian");
Заполнение матрицы 3х3 с клавиатуры через вектор C++
Задание: заполнить матрицу 3х3 с клавиатуры с помощью векторов и через указатель передать в функцию Подскажите реализацию, пожалуйста Слишком долго бьюсь над решением, то одно не получается, то другое
C++ Составить вектор http://www.cyberforum.ru/cpp-beginners/thread522408.html
Cкласти вектор Вm , елементи якого дорівнюють добут-ку min елемента відповідного рядка та суми max значень стовбчиків масиву Am,n. Составить вектор В m, элементы которого равны произведению min элемента соответствующей строки и суммы max значений столбиков массива Am,n.
C++ Представление float в двоичной системе Смысл: требуется написать программу, показывающую двоичную структуру float. Запускаем: вводится первое число с плавающей запятой, выбираем операцию( умножение, деление, сложение, вычитание), вводим второе число с плавающей запятой - на экран выводится результат в десятичной системе и в двоичной. Моя программа выводит пока только в десятичной, потому что в двоичной как это сделать не имею... подробнее

Показать сообщение отдельно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
19.03.2012, 19:08     Лишнее копирование
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    int data;
    double realData;
public:
    A(double r, int d): data(d), realData(r) {   }
    A operator + (const A& op) const { return A(data + op.data, realData + op.realData); }
};
void main()
{
    A a(A(5,acos(-1)) + A(5, log(2)));
}
Вот у меня такая хрень положим есть. При сумировании я сначала выписываю новые данные в новый экземпляр класса A и возвращаю его, после чего вызываю конструктор копирования при создании в мэйне объекта a. Как избежать лишнего копирования при сохранении ключевых моментов (код мэйна не меняется, для оператора + оба операнда const)?

Добавлено через 14 минут
вернее, я понимаю что можно возвращать A&, но ведь созданный в теле оператора + экземпляр живёт только в этом теле, соответственно это не безопасно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru