Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Евгений Буланов
6 / 6 / 15
Регистрация: 23.10.2013
Сообщений: 63
#1

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

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

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

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

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов),...

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

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

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

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

13
ПерС
428 / 354 / 320
Регистрация: 05.11.2013
Сообщений: 1,006
Записей в блоге: 6
Завершенные тесты: 1
14.11.2013, 19:15 #2
если работают ужосы типа x=sqrt(a =2*x) или a=b=c то наверна так
1
Евгений Буланов
6 / 6 / 15
Регистрация: 23.10.2013
Сообщений: 63
14.11.2013, 19:20  [ТС] #3
Так то оно так, нужно конкретно(явно) доказать что возвращается именно ссылка...
0
metaluga145
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
14.11.2013, 19:22 #4
0
ПерС
428 / 354 / 320
Регистрация: 05.11.2013
Сообщений: 1,006
Записей в блоге: 6
Завершенные тесты: 1
14.11.2013, 19:24 #5
а как можно бы было присваивать по цепочке есди бы присваивание не возвращало ссылку на свой левый аргумент?
C++
1
2
x = y = z = 1;
x = (y = (z = 1));
1
metaluga145
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
14.11.2013, 19:26 #6
Евгений Буланов, Вы хотите доказать,что a и b это один и тот же объект?
0
Евгений Буланов
6 / 6 / 15
Регистрация: 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
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
14.11.2013, 20:17 #9
Цитата Сообщение от ElenaBilyk Посмотреть сообщение
Интересно как?))
C++
1
2
3
if ( &a == &b ) {
   //то a и b - это один объект
}
1
ПерС
428 / 354 / 320
Регистрация: 05.11.2013
Сообщений: 1,006
Записей в блоге: 6
Завершенные тесты: 1
15.11.2013, 10:10 #10
Это, конечно, +
Но у ТС вроде речь шла о присваивании?
0
metaluga145
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
15.11.2013, 12:40 #11
Цитата Сообщение от ПерС Посмотреть сообщение
Но у ТС вроде речь шла о присваивании?
присвоили, а потом сравнили.
0
Kuzia domovenok
2215 / 1984 / 446
Регистрация: 25.03.2012
Сообщений: 6,971
Записей в блоге: 1
15.11.2013, 12:57 #12
Цитата Сообщение от metaluga145 Посмотреть сообщение
присвоили, а потом сравнили.
И что? Вопрос действительно странный.
Если сравнивать &a и &b, то с проверкой работы присваивания это не будет иметь ничего общего, т.к адреса а и б, которые тут сравниваются, по любому разные ибо а и б это 2 разных переменных!
Если уж замутить, что-то для проверки ссылки, возвращаемой оператором =,
То это должно быть как-то так:
C++
1
if (&a == &(a=b)  )
0
metaluga145
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
15.11.2013, 13:07 #13
Kuzia domovenok, если честно, то вообще я не сильно понял изначальный вопрос Если Вы поняли вопрос, то объясните)
0
viktorius
2 / 2 / 3
Регистрация: 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
Привет! Вот еще темы с решениями:

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

Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb"
При выполнении этого кода #include <iostream> #include<conio.h> using...

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
Вот функция для удаления столбца: #pragma once #include <iostream> using...

Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004".
Программа компилируется нормально но потом на строчке...


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

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

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