Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
#1

Как доказать, что при "а = b" на место "а" возвращается ссылка? - C++

14.11.2013, 18:48. Просмотров 436. Ответов 13
Метки нет (Все метки)

Нужно доказать что при "a = b" на место "а" возвращается именно ссылка... Натолкните на мысль, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 18:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как доказать, что при "а = b" на место "а" возвращается ссылка? (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Вывести на экран фразу "Мне n лет", учитывая что при некоторых значениях n слово "лет" надо заменить на "год" - C++
дано натуральное число n. Вывести на экран фразу "Мне n лет", учитывая что при некоторых значениях n слово "лет" надо заменить на "год" или...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён. - C++
#define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" #include <math.h> #include <iostream> #define Pi 3.1416 #include <clocale>...

Что Вы понимаете под "абстрактным типом", "абстракцией данных" и "абстрактными операциями"? - C++
А давайте займёмся археологией! И проследим как менялся смысл понятий "абстрактный тип данных", "абстракция данных" и "абстрактные...

Visual Studio не читает операторы, что начинаются на "glu" ("gluBuild2DMipmaps", "gluPerspective") - C++
Данный код должен выводить на экран кубик который должен вращаться, но возникла проблема. Для выполнения этого кода я подключи библиотеку...

13
ПерС
375 / 291 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
14.11.2013, 19:15 #2
если работают ужосы типа x=sqrt(a =2*x) или a=b=c то наверна так
1
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
14.11.2013, 19:20  [ТС] #3
Так то оно так, нужно конкретно(явно) доказать что возвращается именно ссылка...
0
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
14.11.2013, 19:22 #4
0
ПерС
375 / 291 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
14.11.2013, 19:24 #5
а как можно бы было присваивать по цепочке есди бы присваивание не возвращало ссылку на свой левый аргумент?
C++
1
2
x = y = z = 1;
x = (y = (z = 1));
1
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
14.11.2013, 19:26 #6
Евгений Буланов, Вы хотите доказать,что a и b это один и тот же объект?
0
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
14.11.2013, 20:04  [ТС] #7
нет, нет... нужно было доказать что при "a = b" на место "а" возвращается именно ссылка

Добавлено через 39 секунд
ребята, благодарю всех, задачу решил!
0
ElenaBilyk
4 / 4 / 1
Регистрация: 22.10.2013
Сообщений: 34
14.11.2013, 20:09 #8
Интересно как?))
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
14.11.2013, 20:17 #9
Цитата Сообщение от ElenaBilyk Посмотреть сообщение
Интересно как?))
C++
1
2
3
if ( &a == &b ) {
   //то a и b - это один объект
}
1
ПерС
375 / 291 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
15.11.2013, 10:10 #10
Это, конечно, +
Но у ТС вроде речь шла о присваивании?
0
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
15.11.2013, 12:40 #11
Цитата Сообщение от ПерС Посмотреть сообщение
Но у ТС вроде речь шла о присваивании?
присвоили, а потом сравнили.
0
Kuzia domovenok
2031 / 1875 / 169
Регистрация: 25.03.2012
Сообщений: 6,465
Записей в блоге: 1
15.11.2013, 12:57 #12
Цитата Сообщение от metaluga145 Посмотреть сообщение
присвоили, а потом сравнили.
И что? Вопрос действительно странный.
Если сравнивать &a и &b, то с проверкой работы присваивания это не будет иметь ничего общего, т.к адреса а и б, которые тут сравниваются, по любому разные ибо а и б это 2 разных переменных!
Если уж замутить, что-то для проверки ссылки, возвращаемой оператором =,
То это должно быть как-то так:
C++
1
if (&a == &(a=b)  )
0
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
15.11.2013, 13:07 #13
Kuzia domovenok, если честно, то вообще я не сильно понял изначальный вопрос Если Вы поняли вопрос, то объясните)
0
viktorius
2 / 2 / 2
Регистрация: 24.02.2013
Сообщений: 105
15.11.2013, 13:24 #14
Я бы так доказал:
Если речь идет о об операторе присваивания который возвращает ссылку на объект, то при возвращении измененного или не измененного "а" конструктор копии вызываться не будет и диструктор тоже, потому что возвращается ссылка. Если возвращается не ссылка то вызывается конструктор для создания возвращаемого объекта и диструктор для уничтожения.

Может я немного ошибся, если так, прошу меня поправить.
0
15.11.2013, 13:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2013, 13:24
Привет! Вот еще темы с ответами:

Необработанное исключение в "0x778e15de" в "dir-3.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000" - C++
#include <windows.h> #include <d3d9.h> LRESULT __stdcall WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); struct...

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" - C++
Вот функция для удаления столбца: #pragma once #include <iostream> using namespace std; int **DeleteIndexCol(int **ar,int s1,int...

Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc" - C++
Всем привет! помогите мне понять в чём дело. написал программу: #include "stdafx.h" #include <ctime> #include <iostream> #include...

Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9". - C++
вылезает ошибка Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9". ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.