| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Игра в С++ |
| Автор: Fazil6 13.7.2007, 15:05 | ||||
| опять же как Вы думаете допустим
эквивалентен ли код
коду если не перегружать оператор || ? |
| Автор: Daevaorn 13.7.2007, 15:23 |
чему? |
| Автор: Sartorius 13.7.2007, 15:25 |
| Daevaorn, как я понял сам себе без перегруженного || |
| Автор: Fazil6 13.7.2007, 15:34 | ||
да. если не перегружать || получим ли мы в результате
ту тоже самое? |
| Автор: archimed7592 13.7.2007, 15:52 | ||
получим... почему не получить?
Добавлено через 7 минут и 41 секунду Fazil6, набираешь варианты ответов для теста по с++? Или другие цели преследуешь? |
| Автор: Fazil6 13.7.2007, 16:13 |
| вообще-то думал не вызовет этот вопрос особых проблем... спасибо. Вполне развернутый понятный ответ. Может кто-нибудь имеет другое мнение? |
| Автор: Fazil6 13.7.2007, 17:17 |
| Неужели ни у кого нет альтернативного мнения? |
| Автор: Fazil6 13.7.2007, 19:04 |
| совсем ниукого??? |
| Автор: archimed7592 13.7.2007, 19:34 |
А у тебя какое? Ещё раз повторю вопрос: в чём цель игры(для тебя и для общества)? |
| Автор: archimed7592 13.7.2007, 19:58 | ||
А задания сам придумываешь?
Т.е. ты не знаешь правильного ответа? |
| Автор: Fazil6 13.7.2007, 20:01 | ||
знаю
ну вот я и хочу понять, его только я знаю или еще кто-нибудь? Я не думал, что это задание сложное, поэтому и удивлен... Добавлено через 53 секунды сам мужчина, вы такие вопросы задаете... прям неудобно отвечать... |
| Автор: Melancholic 13.7.2007, 20:53 |
| По логике код вообще не откомпилируется, ибо не определён operator||(A, A) |
| Автор: Fazil6 13.7.2007, 21:11 | ||
откомпилируется. не зря ведь определено преобразование
так что это тоже неправильный ответ |
| Автор: Fazil6 14.7.2007, 14:56 |
| Вопрос актуален. Правильного ответа никто не привел. |
| Автор: anthony 14.7.2007, 15:29 | ||
Вызов a.get () возвращает ссылку на объект класса A. Для выполнения логического или необходимо привести ссылку на объект класса А к булевому типу, для чего используется перегруженный оператор приведения типа. Вторая половина b.get() не вычисляется, так как получен гарантированный результат - первый операнд дает истину. Если убрать перегруженный оператор приведения типа и не перегрузить оператор логического или, то произойдет ошибка компиляции. Кроме того: пример "притянут за уши" по той причине, что перегрузка логического или - опасная и бесполезная вещь. |
| Автор: Ln78 14.7.2007, 15:39 |
| Я так понимаю, что логическое или равно 1, когда первый операнд равен 1 (не нуль), поэтому, когда нет перегруженного оператора, то b.get() не вызывается, соответственно, в нём останется 0. Для определённого оператора, чтобы получить оба значения, для обеих операндов get() вызовется, поэтому оба они будут содержать в себе 1 |
| Автор: Fazil6 14.7.2007, 17:22 |
| Ln78, наконец-то... |
| Автор: Ln78 14.7.2007, 18:10 |
Fazil6, это недолго. Вот я как-то придумал задачу, так то ли неудачно её разместил, то ли ещё почему, но особо желающих её решить не нашлось. Уж и zkv перенёс её в другое место http://forum.vingrad.ru/index.php?showtopic=152786&view=findpost&p=1119258 но это не помогло. Вроде как до сих пор её почему-то не решили. |
| Автор: zkv 14.7.2007, 18:23 |
я только попросил модераторов перенести в с++, но они решили что теме этой место в "Интересных задачах..." Во всяком случае, в теме про работу ей точно места не было. |
| Автор: bsa 14.7.2007, 19:36 | ||
Конечно. Я, например, ничего не понял. Ты бы хоть контекст использования привел. А то изменится или не изменится. Изменится - не будет даблы приводит к инту, чем повысит точность. |
| Автор: Ln78 14.7.2007, 22:13 |
| bsa, наверное, этот вопрос лучше было задать в том топике, но можно и здесь. А что непонятно в вопросах? Есть две функции, операнды которых целые. Вопрос - одинаковы ли эти функции, т.е. при всех ли одинаковых значениях входов получаются одинаковые выходы? И другой вопрос, есть другие 2 функции, но у них операнды типа double, для них тоже нужно ответить, одинаковы ли они? Или непонятно, как вызывать функцию с двумя входными параметрами (что ты имел в виду, говоря о контексте использования)? |
| Автор: bsa 14.7.2007, 22:52 |
| Я имел в виду вызов функций в обоих вариантах с параметрами нецелого типа - что-то у меня шарики за ролики заехали. Если честно, разницы не вижу. А если она есть, то это противоречит математике - операция '<=' обратна '>'. |