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

Класс присваивание a=b=c - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Runtime error: abnormal program termination на некоторых компах http://www.cyberforum.ru/cpp-beginners/thread651594.html
MS Visual Studio 2008, диалоговый проект MFC. Программа обрабатывает данные из экселевского файла (чтение/запись). На 99% компов все работает нормально (XP и Win7 различной разрядности). В проге есть...
C++ [С++] Выбор темы магистерской работы Здравствуйте! Помогите определится с интереснейшей темой для магистерской работы! То что предлагается в ВУЗе не особо по душе 1. Технология разработки встроенных программных систем и их... http://www.cyberforum.ru/cpp-beginners/thread651590.html
Текстовые файлы в С++ C++
Добрый день. В летнюю практику входило задание написать программу в среде visual studio c++... Но за лето, конечно, забылась большая часть всего изученного и поэтому прошу помощи у профессионалов...
C++ дебагер в студии 2010
'indexer.exe': Loaded 'C:\Users\shirokov_m\svn\trunk\bin\Debug\indexer.exe', Cannot find or open the PDB file 'indexer.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file...
C++ Формула в CodeBloks http://www.cyberforum.ru/cpp-beginners/thread651576.html
Хэлнапите плиз. Как мне сделать консольную программу которая бы вычисляла объем шара при имении площади?!
C++ ActiveX Хотелось бы узнать, действительно ли в связи с развитием .NET это направление пользовательских элементов управления (которые могут работать с C++) полностью похерено и никто сейчас не пишет таких... подробнее

Показать сообщение отдельно
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
20.10.2012, 12:52
Цитата Сообщение от ForEveR Посмотреть сообщение
ту же семантику, что использует компилятор
А почему в плюсах оператор присваивания в плюсах возвращает lvalue, в то время как в си результатом присваивания является rvalue?
Т.е. вот такая программка:
C
1
2
3
4
5
6
#include <stdio.h>
int main() {
    int a;
    (a = 2) = 3;
    printf("%d\n", a);
}
является валидной с точки зрения c++, и неправильной с точки зрения си

Есть ли у кого-нибудь какие-нибудь соображения, зачем в плюсах изменили семантику присваивания?
Мне в голову приходят только уродливые конструкции вроде
C++
1
(obj1 = obj2).modify();
или
C++
1
obj1.operator=(obj2).modify();
полезные разве что для обфускации кода
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru