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

Разъясните ситуацию с возвратом объекта или ссылки на объект - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Присвоение переменной а значения случайного числа (random) http://www.cyberforum.ru/cpp-beginners/thread1494753.html
Здравствуйте. Задача написать программу для проверки знания таблиц умножения. Rand-омом виводятся два числа (a,b) на консоль. Как присвоить переменной а и переменной b значения, которие вивел random?
C++ Вычисление разницы дат Имеется код: char firstDate = "2015-07-09"; char secondDate = "2015-07-07"; char* format = "%Y-%m-%d"; struct tm tm; strptime(firstDate, format, &tm); // приводим строку к структуре времени time_t fD = mktime(&tm); strptime(secondDate, format, &tm); time_t sD = mktime(&tm); double razn = difftime(fD, sD); //вычисление разницы дат http://www.cyberforum.ru/cpp-beginners/thread1494732.html
C++ Проверка на существование элемента по ключу. Линейные списки
Собственно вроде все работает, только не получается сделать, чтобы при добавлении нового элемента делалась проверка по номеру, к примеру если такой уже есть в списке, то писать об этом, и начать вводить заново, и сделать это все в цикле, мол заполнять список пока пользователь не введет номер 666, тогда выйти из функции. Помогите доделать пожалуйста! #include <iostream> #include <conio.h>...
Деревья (добавление, удаление и вывод элементов) C++
Задача - реализовать дерево на С++, чтобы была возможность добавлять елементы, удалять их оттуда и выводить. Программа запускается и сразу возникает ошибка. Можете подсказать, в чем проблема? Делаю прогу на 6 билдере. #include <iostream> using namespace std; struct Node // { int x; //Запис в дерево Node *l,*r; // };
C++ Отдельно класс данных, класс формул и главный класс http://www.cyberforum.ru/cpp-beginners/thread1494699.html
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений : отдельный класс в котором хранятся все данные, отдельный класс с формулами(для работы с данными(данные из класса данных)) и отдельно главный класс. Правильная ли это вообще структура приложения ? Второй вопрос. Как сделать лучше класс данных? Я создал 2 класса,...
C++ Определение размера char** argv Есть массив строк char** argv где я знаю число строк argc for (int i = 0; i < argc; i++){ printf("%s \n",argv); } char** newargv; Как скопировать argv с помощью memcpy ( &newargv, &argv, sizeof(newargv) );? sizeof(newargv) вернет мне 4, как я понимаю (размер указателя), как определить размер всего копируемого массива? подробнее

Показать сообщение отдельно
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
08.07.2015, 22:00     Разъясните ситуацию с возвратом объекта или ссылки на объект
Цитата Сообщение от myxolod Посмотреть сообщение
А вот когда мы возвращаем объект, почему он не уничтожается, и когда он будет уничтожатся, или как это сделать?
Уничтожается локальный объект, а снаружи функции ты получаешь его копию. Но. Компиляторы, если есть возможность, оптимизируют это и не делают лишнего копирования (отсюда эффект, что объект не уничтожается).
Подробнее тут и тут.
Важно понять, что есть правила языка, а есть оптимизации компилятора. Конструктор копирования при возврате по значению в реальности может не вызываться никогда (это результат оптимизации), но если вдруг его запретить (например поместить в секцию private), то код перестанет копилироваться (это правила языка).
 
Текущее время: 01:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru