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

Есть ли утечка памяти в этом случае? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить число нулей и единиц в массиве http://www.cyberforum.ru/cpp-beginners/thread887546.html
диапазон изменения значений элементов массива 0 или 1 Сделать два варианта программы: -элементы массива задаются пользователем -заполняются с помощью генератора случайных чисел
C++ Определить число нулей и единиц в массиве диапазон изменения значений элементов массива 0 или 1 Сделать два варианта программы: -элементы массива задаются пользователем -заполняются с помощью генератора случайных чисел http://www.cyberforum.ru/cpp-beginners/thread887541.html
C++ Какую роль выполняют идентификаторы в приведенном коде?
Подскажите пожалуйста,какие в данной задаче идентификаторы и их назначение в ней. #include <iostream> #include <algorithm> #include <vector> #include <iterator> #include <cassert> using namespace std; int main()
Ошибка в функции (function: должна возвращать значение) C++
ребят, компилятор выдает error C4716: function: должна возвращать значение что это значит? как с этим бороться? #include "stdafx.h" #include <math.h> #include <string.h> #include <conio.h> #include <iostream> #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h>
C++ Найти количество квадратов нечётных чисел среди компонентов файла http://www.cyberforum.ru/cpp-beginners/thread887521.html
Заполнить файл 7 натуральными числами, полученными с помощью генератора случайных чисел. Найти количество квадратов нечётных чисел среди компонентов файла.
C++ Упорядочить список студентов по оценке, полученной на экзамене и распечатать его На диске имеется файл данных STUDENT.DAT. Упорядочить список студентов по оценке, полученной на экзамене по мат. анализу и распечатать его. подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,862
Записей в блоге: 2
Завершенные тесты: 1
01.06.2013, 22:13     Есть ли утечка памяти в этом случае?
Цитата Сообщение от NonCFist Посмотреть сообщение
ссылка = ссылка?
Да. А так как возвращаемая ссылка ссылается на объект в выделенной динамически памяти, то и Det2 быдет ссылаться на тот же объект.
Цитата Сообщение от NonCFist Посмотреть сообщение
Память свободна. А на что тогда будет ссылаться ссылка &Det2 ?
Ссылка становиться не валидной, т.к. ссылается на объект, которого уже по сути нет. Использование такой ссылки - это UB

Цитата Сообщение от NonCFist Посмотреть сообщение
Либерти сказал, чтобы я так никогда не обращался со ссылками, ибо грех.
Как именно?

Цитата Сообщение от NonCFist Посмотреть сообщение
_Да , и я про копирование не понял всё же. Можно пояснить?
Ну если у Вас ссылка
C++
1
Detail & Det2 = MakeDetail();
то в Det2 будет скопирована возвращенная ссылка. А если без ссылки
C++
1
Detail Det2 = MakeDetail();
то Det2 - это уже объект, который будет построен на основе переданного(будет вызван конструктор копий).
Даную запись можно сделать так:
C++
1
Detail Det2(MakeDetail());
 
Текущее время: 14:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru