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

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

Войти
Регистрация
Восстановить пароль
 
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
#1

Как правильно перегружать унарный минус? - C++

26.12.2012, 10:37. Просмотров 866. Ответов 6
Метки нет (Все метки)

Дайте правильный прототип перегрузки унарного минуса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 10:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно перегружать унарный минус? (C++):

Как сделать, чтобы калькулятор реагировал на унарный минус - C++
подскажите, как сделать, чтобы этот калькулятор реагировал на унарный минус? int prior(char c) { int a; if (c=='+' || c=='-')...

Как вызвать в главной программе оператор унарный минус - C++
Paint operator-(const Paint& p) { return Paint(-p.x,-p.y); }

Унарный минус на С# - C++
Всем доброго времени суток,помогите пожалуйста с задачкой. (i-мнимая единица) Условие: а=3+4i c=-a a=-3-4i Заранее спасибо:)

Оператор (-) Унарный минус. классы. - C++
Доброе время суток . помогите . составить operator- (унарный минус) ( что бы координаты x и y были отрицательными .( немогу понять как...

Как правильно перегружать операторы? - C++
Добрый день. Более-менее освоил Си, и вроде бы неплохо в нем разбираюсь. Решил взяться за плюсы. Помогите разобраться с перегрузкой...

как правильно перегружать оператор? - C++
Есть такой класс. class LampaO { private: int svet; int job; int pro; public: LampaO(int voltage=220); int IfJob();

6
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
26.12.2012, 12:03 #2
Просто перегрузка минуса? Между объектами одного класса или разных?
0
pa3gBa
2 / 2 / 0
Регистрация: 27.04.2012
Сообщений: 20
26.12.2012, 12:22 #3
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
35
class Min
{
private:
    int minus;
public:
    Min(): minus (0) {}
    Min(int m): minus (m) {}
 
    void GetM()
    { cout<< "Enter the number of: "; cin>> minus; }
    
    void ShowM()
    { cout<< "answer= "<< minus; }
    
    Min operator- (Min m2)
    {
        int a= minus- m2.minus;
        return Min(a);
    }
};
 
int main()
{
    Min m1,m2,m3;
    m1.GetM();
    m2.GetM();
 
    m3= m1- m2;
 
    m3.ShowM();
 
 char q;
 cin>>q;
 return 0;
}
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
26.12.2012, 12:33  [ТС] #4
Цитата Сообщение от BumerangSP Посмотреть сообщение
Просто перегрузка минуса? Между объектами одного класса или разных?
Унарный минус.
C++
1
2
3
4
5
6
7
double abs(double x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x;
. Такой же минус, только для класса. А между двумя - это бинарный.

Добавлено через 51 секунду
pa3gBa, это что?
0
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
26.12.2012, 12:35 #5
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
35
#include <iostream>
 
class Integer
{
    int value;
public:
    Integer(): value(0)
    {
    }
 
    Integer(int val): value(val)
    {
    }
 
    Integer operator- ();
 
    friend std::ostream& operator << (std::ostream& out, const Integer& integer);
};
 
Integer Integer::operator-()
{
    return Integer(-this->value);
}
 
std::ostream& operator << (std::ostream& out, const Integer& integer)
{
    out << integer.value;
    return out;
}
 
int main()
{
    Integer integer(32);
    std::cout << -integer << std::endl;
}
1
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
26.12.2012, 12:43 #6
Оно?
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
35
36
37
38
39
40
#include <iostream>
template <class T>
class one
{
        T i;
        public:
      one(T);
        one operator -();
        void show();
};
template<class T>
one<T>::one(T i) 
{
      this->i=i;
}
template <class T>
one<T> one<T>::operator -()
{
         this->i *=-1; 
       return *this;
}
template <class T>
void one<T>::show()
{
      std::cout<<this->i;
}
 
class two
{
        int j;
        two(int);
};
 
int main()
{
     one<int> obj1 = 23;
     obj1 = -obj1;
     obj1.show();
     return 0;
}
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
26.12.2012, 12:50  [ТС] #7
Ответ уже дан постом выше.

Добавлено через 1 минуту
И вообще во-первых
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
//-------------------------------------------------------------------------------------------------
Longs       ::
TInteger
Longs       ::
TInteger    ::  operator -       (                          )
{
 uint8_t  *Source;
 uint8_t  *Target;
 uint16_t  Buffer;
 uint16_t  Carry;
 TInteger  Result;
 for (Source=Data+0xFF, Target=Result.Data+0xFF; Source>=Data; --Source, --Target)
 {
  *Target=~(*Source);
 }
 for (Carry=0x0001, Target=Result.Data+0xFF; Target>=Result.Data; --Target)
 {
   Buffer=((uint16_t)*Target)+Carry;
  *Target= (uint8_t )(Buffer&0x00FF);
  Carry=(Buffer&0xFF00)>>8;
 }
 return Result;
}
//-------------------------------------------------------------------------------------------------
, а во-вторых я просил только прототип.
0
26.12.2012, 12:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2012, 12:50
Привет! Вот еще темы с ответами:

Объясните значение операций: дополнение ~lvalue, унарный плюс и минус, операция создания с размещением - C++
Что такое дополнение ~lvalue, унарный плюс и минус и операция создания с размещением, или создания с размещением и инициализацией new...

Как правильно перегружать потоковый оператор вывода в файл? - C++
Нужен только прототип оператора, реализацию сделаю сам. Обязательное требование: должна поддерживаться &quot;цепная&quot; форма:...

Как перегружать оператор -> ? - C++
Доброго времени суток. Есть класс: template&lt;class T&gt; class Auto_ptr { public: Auto_ptr(T* p) : pointer(p) { } ~Auto_ptr() {...

Определить унарный оператор ++ как дружественную функцию - C++
Есть программа: #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; class Coord ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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