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

Как определить конверсию к типу? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ D-Link c++ http://www.cyberforum.ru/cpp-beginners/thread153300.html
как можно приконнектится к роутеру D-Link с помощью языка с++...весь инет перерыл не нашел ничего путного
C++ Балансировка бинарных деревьев Вот если кому то потребуется вылаживаю рабочую балансировку бинарных деревьев, если есть советы по улучшению то сс удовольствием выслушаю)) //______________Реализация... http://www.cyberforum.ru/cpp-beginners/thread153292.html
Рекурсия: заменить каждую букву строки младшей десятичной цифрой данного числа C++
Всем доброго времени суток=) помогите написать программу, ну или хотя бы объясните задание, а то я его не очень понял =( составить рекурсивную функцию, определяющую в заданной символьной строке...
C++ Графы
Решается судьба степеньдии от этих задач, помогите пожалуйста. 1) Для неориентированого графа определить степени вершин. В случае равенства всех степеней , изменитьстепень равенства одной из них....
C++ Работа с EditBox в Visual Studio 2006 http://www.cyberforum.ru/cpp-beginners/thread153229.html
Я работаю с MFC інтерфейсов и ставил неактивними EditBox с помощью галочки в properties но теперь постала проблема в том штоб заставить ее исчезнуть в ходе работи програми. Какие есть функции для...
C++ Оператор присваивания Почему в этом случае вызывается оператор присваивания Fraction f4; f4 = f1+f2+f3; а в другом не вызывается: Fraction f4 = f1+f2+f3; Вот весь код: #include <stdafx.h> #include... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
13.07.2010, 15:58

Не по теме:

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Nick Alte, язык определяется стандартом, который, как ты заметил, разрабатывали далеко не глупые люди, посему стандарта стоит придерживатся. Никакого слепого идолопоклонства в этом нет.
Не придерживаться стандарта просто не получится: компилятор не даст (вопрос специфических для компилятора расширений оставим за бортом, едва ли отклоняющийся от стандарта код случайно совпадёт с расширением). В том, чтобы придерживаться стандарта, действительно нет слепого идолопоклонства. Оно есть в том, чтобы придерживаться нелепых и неверных трактовок стандарта без малейших попыток осмысления.

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Делая оператор преобразования константным ты позволяешь безмолвно преобразовать объект одного типа в объект другого типа, не смотря на то констатные они или нет, в том числе константу в неконстанту.
Смысл оператора преобразования в том, что он порождает новое значение другого типа, никоим образом не изменяя старого. И порождаться это значение может и из константных, и из неконстантных объектов. То есть, метод явно константный и так его и следует определять. Придавать ему другой смысл нужно крайне редко в силу очень особых необходимостей и то с оговорками в документации.

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
На мой вопрос о причине константности оператора, ты ответил, что все, что возможно, нужно делать константным. Разве это нельзя назвать идолопоклонством?
Нельзя, потому что у этой рекомендации есть рациональные причины. Следование ей позволяет более явно и формализованно выражать свой замысел и позволит компилятору выявлять ряд потенциальных ошибок. Модификатор const для этого и придумывался и Страуструп поясняет, что его "вирусообразное распространение по коду" (то есть, то же самое, о чём я и говорил: константным делается всё, что возможно) соответствует замыслу.




Цитата Сообщение от Bazan Посмотреть сообщение
Теперь надо разбираться с логикой
Логика очень простая. Оператор сложения порождает новое значение и возвращает его по значению. Поскольку он не изменяет значения своих операндов, он является const-методом, каковых рекомендаций и придерживается приведённая CyBOSSeR сигнатура.
C++
1
2
3
4
MyInt MyInt::operator + (const MyInt& op2) const
{
    return MyInt(data + op2.data);   // Ничего сложного...
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru