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

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

Войти
Регистрация
Восстановить пароль
 
MjRed
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 3
#1

Реализация перегрузки "operator +" для двух объектов - C++

15.12.2008, 12:00. Просмотров 709. Ответов 3
Метки нет (Все метки)

С=A+B;

Что то не получается в операторе operator+;
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream.h>
 
class MASS
{
    int *num;
    int n;
    int size;
public:
    MASS()
    {
        num=NULL;
        size=0;
    }
    MASS(int n)
    {
        size=n;
        num=new int[size];
        for(int i=0; i<size; i++)
            *(num+i)=i;
    }
 
    void print()
    {
        for(int i=0; i<size; i++)
            cout<<*(num+i);
        cout<<endl;
    }
 
    friend MASS operator+(MASS, MASS);
};
    
    MASS operator+(MASS A, MASS B)
    {
        MASS CC;
        int a1=A.num[0];
        int a2=B.num[0];
        CC.size=a1+a2;
        CC.num=new int[CC.size];
        for(int i=0; CC.num[i]=A.num[i]; i++)
            CC.num[i]=' ';
        for(int j=0; CC.num[j+1]=B.num[j]; i++, j++);
        return CC;    
    }
 
    void main()
    {
        int dim;
        cout<<"Vvedite razmernost' masiva: ";
        cin>>dim;
        MASS A(dim), B(dim), C(dim+dim);
 
        A.print();
        B.print();
        C=A+B;
        C.print();    
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2008, 12:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация перегрузки "operator +" для двух объектов (C++):

Создание перегрузки метода "operator =" для типа, расположенного в ином namespace - C++
Здравствуйте. Столкнулся со следующей проблемой которая упрощено выглядит так namespace M{ struct A{ int b; ...

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число" - C++
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс, перегрузил операторы сложения и умножения, в конструкторе...

Создать классы "Computer", "Software", "User" и реализовать взаимодействие объектов этих типов между собой - C++
Помогите решить задачку,нужна в инст на экзамен. Составить программу реализующую: 1)классы,которые могут содержать...

Написать перегрузку operator+() для класса "Массив" - C++
Добрый день, Подскажите, как выйти правильно из ситуации: Array&amp; Array::operator+(const Array&amp; obj) { Array temp; ...

Глобальное переопределение "operator <<" для char * - C++
Здравствуйте. Привожу пример для демонстрации проблемы. Помогите пожалуйста в ее устранении или нивелировании. std::ostream&amp;...

Как переопределить "operator <<" для cout? - C++
использую RAD 2010 (MVS 2010 стал сильно тормозить и я перешёл). setlocale не помогает, функция char bufRus; char* Rus(const char*...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
15.12.2008, 13:10 #2
и не получиться =) так как ты написал

Добавлено через 7 минут 42 секунды
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <windows.h>
#include<iostream>
#include<time.h>
using namespace std;
class Int{
int m_num;
public:
 Int(){
     this->m_num=0;
 }
 Int(int num){
  this->m_num=num;
 }
 Int operator +( Int num){
        Int rez(this->m_num+num.m_num);
  return rez;
 }
 Int operator -( Int num){
  num.m_num=-num.m_num;
  return this->operator +(num);
 }
 Int operator *(Int num){
  Int rez(this->m_num*num.m_num);
  return rez;
 }
 Int operator /( Int num){
  Int rez(this->m_num/num.m_num);
  return rez;
 }
 Int&operator+=(Int num){
  this->m_num+=num.m_num;
  return*this;
 }
 
 Int operator^(const Int& obj){
  Int res; 
  res.m_num=1;
  for(int i=1;i<=obj.m_num;i++)
   res.m_num*=this->m_num;
  return res;
 }
 
 void Show(){
  cout<<m_num<<'\n';
 }
};
void main(){
 Int a=5;
 Int b=3;
 Int c=10;
 //Int d=a+b+c;
 Int e=a*b/b;
 Int d;(d+=a)+=b;
 Int f=a^3;
 f.Show();
 //Int d=(a.operator+(b)).operator+(c);
 //e.Show();
 
}
0
MjRed
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 3
15.12.2008, 15:23  [ТС] #3
Casper!, Такой вопрос!!! Вы мне написали прогу, но можно исправить мою???
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream.h>
 
class MASS
{
    int *num;
    int n;
    int size;
public:
    MASS()
    {
        num=NULL;
        size=0;
    }
    MASS(int n)
    {
        size=n;
        num=new int[size];
        for(int i=0; i<size; i++)
            num[i]=i;
    }
 
    void print()
    {
        for(int i=0; i<size; i++)
            cout<<num[i];
        cout<<endl;
    }
 
    friend MASS operator+(MASS, MASS);
    ~MASS(){delete [] num;}
};
    
    MASS operator+(MASS A, MASS B)
    {
        MASS CC;
        int a1=A.size;
        CC.num=new int[a1];
        for(int i=0; i<a1; i++)
            CC.num[i]=A.num[i]+B.num[i];
        for(i=0;i<a1;i++)
            cout<<CC.num[i];
            
        return CC;
    }
 
    
 
    void main()
    {
        int dim;
        cout<<"Vvedite razmernost' masiva: ";
        cin>>dim;
        MASS A(dim), B(dim), C(dim);
 
        A.print();
        B.print();
        C=A+B;
        C.print();
    }
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
15.12.2008, 16:16 #4
ну я тебе дал образец и очень даже хорошии и не только на +, попробуи сам зделать на сложение массива
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2008, 16:16
Привет! Вот еще темы с ответами:

Перегрузка "operator =" для шаблона класса - C++
как правильно перегрузить operator= для щаблона, по идее я принимаю 2 ссылки на объекты этого класса и возвращаю 1 из них ... что-то не...

Чем "operator *=" отличается от "operator *"? - C++
снова застряла, не могу понять, чем этот оператор должен отличаться от оператора*.....? вот он, но это работает только в случае...

Для чего нужен "operator"? - C++
Вот такой пример : One One::operator+=(One &amp; rhs) { *itsA+=rhs.Get(); return *this; } Вообще ну ни как не могу догнать...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout - C++
Добрый день! Переписал код из книг Лафоре, создание мультимножества из собственных объектов- справочник телефонный, с именем и фамилией. ...


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

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

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