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

Перегрузка операторов - C++

Восстановить пароль Регистрация
 
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
28.10.2012, 16:33     Перегрузка операторов #1
C++
1
2
3
4
5
ifstream ifile("open.txt");
if(! ifile)
{
 
}

Как реализовать класс, что бы можно было писать:

C++
1
2
3
4
5
A a;
if(a)
{
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 16:33     Перегрузка операторов
Посмотрите здесь:

C++ [c++] Перегрузка операторов
[C++] Перегрузка операторов C++
C++ Перегрузка операторов
перегрузка операторов C++
C++ перегрузка операторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.10.2012, 16:42     Перегрузка операторов #2
написать оператор приведения к одному из скалярных типов или к указателю на любой тип
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
28.10.2012, 16:43  [ТС]     Перегрузка операторов #3
Jupiter, то есть:

C++
1
2
3
4
5
6
7
8
9
class A
{
public:
 
bool operator int()
{
 
}
};
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.10.2012, 16:46     Перегрузка операторов #4
C++
1
2
3
4
operator bool() const 
{
    return true;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.10.2012, 16:46     Перегрузка операторов #5
Kgfq, а что это вдруг оператор int стал bool возвращать?
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
28.10.2012, 16:49  [ТС]     Перегрузка операторов #6
soon, таки нам же нужно проверить if(true) или if(false). Неужели нельзя при приведении к одному типу вернуть другой?
Jupiter
28.10.2012, 16:55
  #7

Не по теме:

Цитата Сообщение от Kgfq Посмотреть сообщение
Неужели нельзя при приведении к одному типу вернуть другой?
вам не надоело задавать бредовые вопросы?

Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
28.10.2012, 17:13  [ТС]     Перегрузка операторов #8
Цитата Сообщение от Jupiter Посмотреть сообщение

Не по теме:


вам не надоело задавать бредовые вопросы?

С++, между прочим, весьма опасный язык. Если мы можем указать на то, чего не существует, то почему не можем перегрузить так, как нам того хочется?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.10.2012, 17:16     Перегрузка операторов #9
Цитата Сообщение от Kgfq Посмотреть сообщение
С++, между прочим, весьма опасный язык. Если мы можем указать на то, чего не существует, то почему не можем перегрузить так, как нам того хочется?
Потому что есть границы допустимого. А есть границы статического знания и динамического. Перегрузка выполняется статически, так что тут вы подчиняетесь компилятору. В динамике можете творить, что хотите.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
28.10.2012, 17:19  [ТС]     Перегрузка операторов #10
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
А есть границы статического знания и динамического.
Можно об этом поподробней?
Или ссылку на информацию
Jupiter
28.10.2012, 17:20
  #11

Не по теме:

Цитата Сообщение от Kgfq Посмотреть сообщение
С++, между прочим, весьма опасный язык. Если мы можем указать на то, чего не существует, то почему не можем перегрузить так, как нам того хочется?
да есть очень много нелогичных выносящих мозг вещей, ваши же вопросы на уровне элементарного синтаксиса подробности которого можно нагуглить если так уж влом читать литературу

Kgfq
28.10.2012, 17:22  [ТС]
  #12

Не по теме:

Jupiter, мелочи узнавать лучше от людей. Книги, в основе своей, объясняют чуть более глобальные вещи. Или вовсе не те.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 17:24     Перегрузка операторов
Еще ссылки по теме:

Перегрузка операторов C++
Перегрузка операторов C++
C++ Перегрузка операторов (--, +=, -=, == )

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.10.2012, 17:24     Перегрузка операторов #13
Цитата Сообщение от Kgfq Посмотреть сообщение
Можно об этом поподробней?
Или ссылку на информацию
Есть вещи, которые известны уже при компиляции. Например, это тип возвращаемого функцией значения. И тип выражения — операнда return. Если они не совпадают и не приводимы, компилятор ругнётся.

А есть вещи, которые известны только динамически, только при выполнении программы. Например, это настоящий тип объекта, на который указывает указатель, и то значение, на которое он указывает. Тут компилятор может проверить только ограниченное число случаев. Те случаи, которые он проверить не может, и позволяют тот самый произвол указывания на то, что не существует, или на то, что совсем другое.
Yandex
Объявления
28.10.2012, 17:24     Перегрузка операторов
Ответ Создать тему
Опции темы

Текущее время: 01:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru