Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovMaximuS_GА странно тогда, почему в main() прокатывают оба оператора: Код: plaintext 1. 2. 3. Потому, что синтаксис надо учить. Во второй строке переменной t, имевшей значение 3, переприсваивается значение 2. С явным указанием необязательного знака плюс. В третьей строке выполняется оператор с присваиванием и в результате получается 4. Всё же скорее это применение операции "унарный плюс" к константе "2". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 21:59 |
|
||
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovMaximuS_GА странно тогда, почему в main() прокатывают оба оператора: Код: plaintext 1. 2. 3. Потому, что синтаксис надо учить. Во второй строке переменной t, имевшей значение 3, переприсваивается значение 2. С явным указанием необязательного знака плюс. В третьей строке выполняется оператор с присваиванием и в результате получается 4. Ага, ясно, спасибо большое! Вот так и учим синтаксис) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 14:27 |
|
||
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
MasterZivBasil A. Sidorovпропущено... Потому, что синтаксис надо учить. Во второй строке переменной t, имевшей значение 3, переприсваивается значение 2. С явным указанием необязательного знака плюс. В третьей строке выполняется оператор с присваиванием и в результате получается 4. Всё же скорее это применение операции "унарный плюс" к константе "2". Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 14:35 |
|
||
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
Еще появился вопрос. Вот так переопределяю операцию "+=" Код: plaintext 1. 2. 3. 4. 5. Возвращаю объект по ссылке, так как читал, что нужно вернуть объект по ссылке, что бы такое выражение было валидно: Код: plaintext 1. Я не понимаю, почему такое выражение будет не валидным, если я верну объект по значению? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 13:31 |
|
||
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
MaximuS_G, Если ты вернёшь объект по значению, он вернется как временный объект, и не будет lvalue. А для = слева нужно lvalue. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 21:05 |
|
||
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
MasterZivMaximuS_G, Если ты вернёшь объект по значению, он вернется как временный объект, и не будет lvalue. А для = слева нужно lvalue. Ясно, спасибо большое! А вот здесь не подскажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2013, 15:26 |
|
||
|
переопределенный оператор - возвращение типа по ссылке и по значению
|
|||
|---|---|---|---|
|
#18+
.... Здесь в функции operator+() операнды выбираются по ссылке, а возвращается само значение объекта. Более эффективным решением был бы возврат тоже ссылки: class matrix { // ... friend matrix & operator+(const matrix&, const matrix&); friend matrix& operator*(const matrix&, const matrix&); }; Это допустимо , но возникает проблема с выделением памяти. Поскольку ссылка на результат операции будет передаваться как ссылка на возвращаемое функцией значение, оно не может быть автоматической переменной этой функции. Поскольку операция может использоваться неоднократно в одном выражении, результат не может быть и локальной статической переменной. Как правило, результат будет записываться в отведенный в свободной памяти объект. Обычно бывает дешевле (по затратам на время выполнения и память данных и команд) копировать результирующее значение, чем размещать его в свободной памяти и затем в конечном счете освобождать выделенную память. К тому же этот способ проще запрограммировать. Это цитата из одной не модной книжки -)) Бьерн Страуструп: Язык программирования С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2013, 23:58 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38110736&tid=2020432]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 296ms |

| 0 / 0 |
