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

не могу сложить int +object на с++ - C++

Восстановить пароль Регистрация
 
Smarty91
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 22
18.03.2013, 23:24     не могу сложить int +object на с++ #1
помогите решать ето проблему как сложить
int+object
я сделал object+int всё отлично работает

но int+object так почему то не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
18.03.2013, 23:36     не могу сложить int +object на с++ #2
Просто сложить или присвоить результат сложения?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
class a
{
        int i;
public:
         a(int x): i(x) {}
         operator int ()
         {
            return i;
         } 
};
int main()
{
     a object(10);
     int i = 21;
     int x = i + object;
     std::cout<<x;
     return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.03.2013, 00:14     не могу сложить int +object на с++ #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
class A
{
        int n;
    public:
         A() {}
         
         A(int x)
         { 
            n = x; 
         }
         
         friend A operator+(int x, A& a)
         {
              a.n += x;
              return a;
         } 
};
 
int main()
{
     A a(5);
     A b;
     
     b = 10 + a; 
     
     return 0;
}
Smarty91
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 22
19.03.2013, 00:17  [ТС]     не могу сложить int +object на с++ #4
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
#include <iostream>
class coord {
    int x;
public:
    coord() { x = 0;  }
    coord(int i) { x = i;  }
    void get_x(int &i) { i = x;  }
    coord operator+(int i);
};
coord coord::operator+(int i)
{
    coord temp;
    temp.x = x +i;
 
 
    return temp;
}
using namespace std;
 
int main()
{   coord a1(6),a2;
    int x;
    a2=a1+10;
    a2.get_x(x);
    cout << "(o1 + int) X: " << x << "\n";
 
    cout << "Hello world!" << endl;
    return 0;
}
потом так a2=10+a1 сделал почему то не работает
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
19.03.2013, 00:28     не могу сложить int +object на с++ #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 coord {
        public:
    int x;
 
    coord() { x = 0;  }
    coord(int i) { x = i;  }
    void get_x(int &i) { i = x;  }
    coord operator+(int i);
    operator int();
};
coord coord::operator+(int i)
{
    coord temp;
    temp.x = x +i;
 
 
    return temp;
}
coord::operator int()
{
   return x;
}
using namespace std;
 
int main()
{   coord a1(6),a2;
    int x;
    a2=10 + a1;
    a2.get_x(x);
   cout<< a2.x;
 
    cout << "Hello world!" << endl;
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.03.2013, 00:36     не могу сложить int +object на с++ #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
class A
{
        int n;
    public:
         A() {}
         
         A(int x)
         { 
            n = x; 
         }
         
         friend A operator+(int x, A& a)
         {
              A temp;
              temp.n = x + a.n;
              return temp;
         } 
};
 
int main()
{
     A a(5);
     A b;
     
     b = 10 + a; 
     
     return 0;
}
Yandex
Объявления
19.03.2013, 00:36     не могу сложить int +object на с++
Ответ Создать тему
Опции темы

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