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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
#1

операторы hand made - C++

02.01.2012, 13:46. Просмотров 494. Ответов 8
Метки нет (Все метки)

Можно ли создавать свои операторы для встроенных типов. Например сделать оператор который работал бы как функция abs.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2012, 13:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос операторы hand made (C++):

С++.Операторы в С++: условные операторы, операторы break и continue - C++
Выяснить, пересекаются ли параболы у=аx2+bx+с и у=dx2+ex + f. При положительном ответе найти точки пересечения.

right-hand operand - C++
#include <iostream> #include <cmath> #include <ctime> using namespace std; const int n=3; template<class T>T after_C(T *m,int...

No operator found which takes a right-hand operand - C++
Кто подскажет в чем ошибка? #include <iostream> #include <vector> class LongNumber { public:

Определить и вывести количество дней между двумя датами (логические операторы и операторы ветвлений) - C++
Задачка Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими...

Операторы присваивания, ввода- вывода. Операторы ветвления, выбора - C++
Даны два ненулевых числа. Найти их сумму, разность, произведение, частное, остаток и целую часть от деления. Добавлено через 8 часов...

«Языки и технологии программирования» «Операторы цикла. Условные операторы» - C++
Не получается сделать что бы программа выводила все значения в промежутке, она выводит только одно. условия | ((z^3)+sin...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 14:07 #2
Нет. Можно перегрузить для класса, но это не кошерно(имеется в виду такие функции, как abs, что и предоставлено в данном коде на примере пергрузки унарного минуса).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
template <class T> class Foo
{
    T a;
    
public:
    Foo(T num): a(num)
    {
        
    }
    
    Foo& operator - ()
    {
        if(a < 0)
            a = -a;
        return *this;
    }
    
    friend std::ostream& operator << (std::ostream& stream, Foo f)
    {
        stream << f.a;
        return stream;
    }
};
    
int main()
{
    Foo<float> f(-5.4);
    Foo<int> f1(2);
    std::cout << f << ' ' << f1 << std::endl;
    std::cout << -f << ' ' << -f1 << std::endl;
    return 0;
}
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.01.2012, 15:47 #3
Цитата Сообщение от cyberobot Посмотреть сообщение
Например сделать оператор который работал бы как функция abs.
Какой оператор? Можно любой перегрузить
0
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
02.01.2012, 16:35 #4
Цитата Сообщение от go Посмотреть сообщение
Какой оператор? Можно любой перегрузить
так не любой же оператор можно перегрузить,вроде
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
02.01.2012, 16:39 #5
vetal10, всё верно
Код
.    .*   ::   ?:   sizeof
нельзя перегружать.
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.01.2012, 19:50 #6
Цитата Сообщение от vetal10 Посмотреть сообщение
так не любой же оператор можно перегрузить,вроде
За чем так буквально воспринимать. Имелось ввиду, что по логике ни один из операторов не подходит для это.
В варианте soon,
Код
-
должен менять знак на противоположно (по логике), а не находить абсолютное значение
0
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
02.01.2012, 19:53 #7
на случае если ТС подумает что любой действительно можно перегружать
0
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 19:59 #8
ТС вообще спрашивал "для встроенных типов".
0
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
02.01.2012, 20:07 #9
my bad
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2012, 20:07
Привет! Вот еще темы с ответами:

Операторы языка С++: операторы цикла (исправьте программу) - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; using namespace std; int main() { int a,n; float y,x; cout&lt;&lt;...

Error C2679: binary '>>': no operator found which takes a right-hand operand of type - C++
нужно написать программу обработки структур. в программе использовать структуру, содержащую поля с информацией об учащихся: - фамилия и...

Операторы цикла и операторы передачи управления - C++
Вычислить сумму ряда S с погрешностью эпсилон, задаваемой с клавиатуры. Вывести количество итераций, сделанных при вычислении. Если...

Операторы принятия решения и операторы цикла. - C++
Пожалуйста, помогите. Нужно срочно сделать задания: 1)Ввести с клавиатуры три символа sym1, sym2, sym3. Поменять их значения таким...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.01.2012, 20:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru