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

Конструктор копирования(быстрый вопрос) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неправильная работа с файлами http://www.cyberforum.ru/cpp-beginners/thread393445.html
#include <iostream.h> #include <fstream.h> #include <windows.h> #include <string> struct student { char name; char address; int old; //int marks;
C++ Графика с (задача) Медленное печатание. Заданный текст печатать крупными буквами с некоторыми паузами между буквами, сопровождая каждую букву звуковым щелчком. Перенос осуществлять только целыми словами. Помогите с... http://www.cyberforum.ru/cpp-beginners/thread393442.html
C++ Шаблонная функция
Учу c++, в книге приводится вот такой листинг примера работы шаблонной функции, однако он не компилится, выдает ошибку error C2668: swap: неоднозначный вызов перегруженной функции вот сам листинг...
Параллельное программирование C++
У меня есть задание: Коллективные операции. Работа имитирует реальный поиск в параллельной базе данных. Некоторое множество записей (ключ, данные) распределено по машинам коллектива. Пользователь...
C++ Программа со считыванием и распознаванием некоторых символов.. http://www.cyberforum.ru/cpp-beginners/thread393426.html
Написать программу, которая считывает строку символов, которая считывает строку, содержащую только числа (с проверкой символов при вводе) и под¬счи¬тывает количество знаков “минус” в строке.
C++ Программа табулировани двух функций s=1-x^2/2!+x^4/4!-K x n=10 y=cosx Программа табулировани двух функций S и Y в заданном диапазоне изменения аргумента x. здесь n-число слагаеммых S. на К можно не обращать внимание она... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
28.11.2011, 14:55
Цитата Сообщение от greeezz Посмотреть сообщение
[b]

const нужен чтобы избежать инцидентов вот такого характера : (A = B) = C;
О каком "инциденте" вы ведете речь? Это семантика языка С++. Простой пример,

C++
1
2
3
int x, y = 1, z = 2;
 
( x = y ) = z;
Я вам же написал, что оператор присваивания в С++ возвращает lvalue. Вы же пропускаете это важное замечание и говорите о каком-то "инциденте". Класс Int должен полностью имитировать работу с фундаментальными типами, поэтому данный "инцидент" для него обязан присутствовать.

как раз дело в том что нет необходимости присваивать значения полей объекта к ним же самим
Работая с целыми числами вы можете написать x = x;, поэтому незачем делать лишнию проверку в операторе присваивания, которая по объектному коду занимает больше места, чем обыное присваивание переменной типа int самой себе. Дело в том, что компилятор может оптимизировать код x = x;, то есть вообще не генерировать для этой строки никакого объектного кода, а, вот, для строки if ( this != &obj ) компилятор обязан сгенерировать код! То есть вы простое заменяете на сложное, при этом не получая никаких преимуществ, а даже теряя в эффективности.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru