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

Вызов функций для ОБЪЕКТОВ !!! - C++

Восстановить пароль Регистрация
 
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
04.10.2011, 17:23     Вызов функций для ОБЪЕКТОВ !!! #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
25
26
27
28
29
30
31
32
33
34
35
Если я таким образом буду вызывать функции для объектов a и b, то мне выдается правильно только сумма ,а все остальное считает не правильно, либо выводит значение a.
 Я не знаю как правильно вызывать другие функции для тех же объектов, т.е чтобы и разность, и умножение с делением работали.
 
Помогите разобраться пожалуйста...
 
 
int main()
{
        complex a(2 , 2), b(1 , 1);
        
        cout<<"\na = "; //комплесное число a
        a.Display();
 
        cout<<"\nb = "; //комплексное число b
        b.Display();
        
        cout<<"\na+b = "; //сумма комплексных чисел
        a.Add(b);
        a.Display();
         
        cout<<"\na-b = "; //разность комплексных чисел
        a.Sub(b);
        a.Display();
        
        cout<<"\na*b = "; //умножение комплексных чисел
        a.Mul(b);
        a.Display();
        
        cout<<"\na/b = "; //деление комплексных чисел
        a.Div(b);
        a.Display();
        
        _getch();
        return 0;
}

вот что у меня выводится...
a = 2 + i 2

b = 1 + i 1

a+b = 3 + i 3

a-b = 2 + i 2

a*b = 0 + i 2

a/b = 1 + i 0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 17:23     Вызов функций для ОБЪЕКТОВ !!!
Посмотрите здесь:

Вызов функций C++
C++ Вызов функций
Вызов функций C++
Вызов функций C++
C++ Вызов метода для всех созданных объектов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ybrjk
26 / 26 / 2
Регистрация: 06.11.2010
Сообщений: 77
04.10.2011, 17:30     Вызов функций для ОБЪЕКТОВ !!! #2
А как выглядит код класса complex?
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
04.10.2011, 17:41  [ТС]     Вызов функций для ОБЪЕКТОВ !!! #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
/*
 * complex.h
 */
 
#ifndef COMPLEX_H_
#define COMPLEX_H_
class complex
{
private:
        int RE, IM;
public:
       complex();
       complex( int _RE, int _IM );
       void set_RE( int _RE );
       void set_IM( int _IM );
       int get_RE ();
       int get_IM ();
     void Display();        // вывод
     complex Add(complex &ob);  // прибавить комплексное число
     complex Sub(complex &ob);  // вычесть комплексное число
     complex Mul(complex &ob);  // умножить комплексное число
     complex Div(complex &ob);  //делить комплексное число
};
#endif
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
60
61
62
63
64
65
/*
 * complex.cpp
 */
#include <iostream>
#include "complex.h"
using namespace std;
 
complex::complex()
{
     RE = 0; IM = 0;
}
complex::complex( int _RE, int _IM )
{
     RE = _RE; IM = _IM;
}
 
void complex::set_RE( int _RE )
{
     RE = _RE;
}
void complex::set_IM( int _IM )
{
     IM = _IM;
}
 
int complex::get_RE ()
{
    return RE;
}
        
int complex::get_IM ()
{
    return IM;
}
 
// определение метода вывода
void complex::Display()
{
cout << RE << " + i " << IM << endl;
}
// определение метода сложения
complex complex::Add(complex &ob)
{
     RE = RE + ob.RE;
     IM = IM + ob.IM;
}
// определение метода вычитания
complex complex::Sub(complex &ob)
{
     RE = RE - ob.RE;
     IM = IM - ob.IM;
}
// определение метода умножения
complex complex::Mul(complex &ob)
{
     RE = RE*ob.RE - IM*ob.IM;
     IM = RE*ob.IM + IM*ob.RE;
}
// определение метода деления
complex complex::Div(complex &ob)
{
     int znam = ob.RE*ob.RE+ob.IM*ob.IM;
     RE = (RE*ob.RE+IM*ob.IM) / znam;
     IM = (IM*ob.RE-RE*ob.IM) / znam;
}
Добавлено через 3 минуты
если что мне нужно делать именно через функции, а не прегрузку...
Ybrjk
26 / 26 / 2
Регистрация: 06.11.2010
Сообщений: 77
04.10.2011, 18:05     Вызов функций для ОБЪЕКТОВ !!! #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
 
        complex a(2 , 2), b(1 , 1),c(2,2),d(1,1);
        
        cout<<"\na = "; //комплесное число a
        a.Display();
 
        cout<<"\nb = "; //комплексное число b
        b.Display();
        
        cout<<"\nс-d = "; //сумма комплексных чисел
        c.Add(d);
        c.Display();
         
        cout<<"\na-b = "; //разность комплексных чисел
        a.Sub(b);
        a.Display();
    system("pause");
 
}
Добавлено через 2 минуты
После вызова Add() а=3+3i, а не2+2i
Аналогично для Div() и Mul()
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
04.10.2011, 18:10  [ТС]     Вызов функций для ОБЪЕКТОВ !!! #5
я и сама о таком подумала...но это слишком примитивно...
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
04.10.2011, 18:12  [ТС]     Вызов функций для ОБЪЕКТОВ !!! #6
Кто-нибудь знает как можно сделать по-другому???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2011, 18:40     Вызов функций для ОБЪЕКТОВ !!!
Еще ссылки по теме:

C++ Вызов специфических для потомка функций, не зная класса потомка
C++ Вызов членов и объектов с наследника класса
C++ Вызов функций

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

Или воспользуйтесь поиском по форуму:
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
04.10.2011, 18:40  [ТС]     Вызов функций для ОБЪЕКТОВ !!! #7
Помогите пожалуйста
Yandex
Объявления
04.10.2011, 18:40     Вызов функций для ОБЪЕКТОВ !!!
Ответ Создать тему
Опции темы

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