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

создание класса - C++

Восстановить пароль Регистрация
 
alex_
4 / 4 / 1
Регистрация: 03.06.2011
Сообщений: 35
21.10.2011, 19:32     создание класса #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
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
66
67
68
69
70
71
72
//---------------------------------------------------------------------------
 
#include <clx.h>
#pragma hdrstop
#include <stdio.h>
//---------------------------------------------------------------------------
 
class drob      //объявление класса
{
 private:
 int n;                    //объявление переменных
 int*a;
 public:
                        
 void del   (int a,int b); 
 void umn   (int a,int b); 
 void razn  (int a,int b);  
 void plus  (int a,int b):
 void print (void);
} 
;
 
 
    drob del.drob(drob a,drob b)
{drob c;
c.zn=a.znb*b.zn;
c.ch=a.ch*b.ch;
return c;
}
 
 
    drob umn.drob(drob a,drob b)
{drob c;
c.zn=a.znb*b.ch;
c.ch=a.ch*b.zn;
return c;
}
 
    drob razn.drob(drob a,drob b)
{drob c;
c.zn=a.zn*b.zn;
c.ch=a.ch*b.zn-b.ch*a.zn;
return c;
}
 
 
    drob plus.drob(drob a,drob b)
{drob c;
c.zn=a.zn*b.zn;
c.ch=a.ch*b.zn+b.ch*a.zn;
return c;
}
 
void drob::print(void)
{
printf("%d\n%d\n",c.zn,c.ch);
}
 
void main()                                   //тело программы
{
drob r1(7,8),r2(8,9),r3;
r3.del(r1,r2);
r3.print();
r3.razn(r1,r2);
r3.print();
r3.umn(r1,r2);
r3.print();
r3.plus(r1,r2);
r3.print();
getchar();
getchar();
}
не знаю что и делать т.к. многого мы не проходили и не принимает
(
C++
1
Rational Rational::Add (const Rational&s) const//вот эту const
)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.10.2011, 20:34     создание класса #2
alex_, как соотносится первый код (длинный) со вторым (коротким)? Второй код - строка из совершенно другой программы.
alex_
4 / 4 / 1
Регистрация: 03.06.2011
Сообщений: 35
21.10.2011, 22:09  [ТС]     создание класса #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
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
class Rational
    {int a,b; //a-числитель b-знаменатель//
public: 
        Rational (int=0, int=1);
        Rational Add (const Rational&) const;
        Rational Sub (const Rational&) const;
        Rational Mult (const Rational&) const;
        Rational Div (const Rational&) const;
        void Print () const;
        void Change (int,int);
private:
    int Nod (int, int) const;
};
 
 
 
Rational::Rational (int chislit, int znamenat)
    {a=chislit;
    if(znamenat)
        b=znamenat;
    else
        {cout<<"Ne mogu podelit na ZERO"<<endl;
        exit(1);}
    }
Rational Rational::Add (const Rational&s) const
    {
    int c;
    Rational Sum;
    Sum.a=a*s.b+b*s.a;
    Sum.b=b*s.b;
    if (Sum.a>Sum.b)
        c=Nod (Sum.b, Sum.a);
    else
    c=Nod (Sum.b, Sum.a);
    Sum.a=Sum.a/c;
    Sum.b=Sum.b/c;
    return Sum;
    }
 
Rational Rational::Sub (const Rational&s) const
    {
    int c;
    Rational Sum;
    Sum.a=a*s.b-b*s.a;
    Sum.b=b*s.b;
    if (Sum.a>Sum.b)
        c=Nod (Sum.b, Sum.a);
    else
    c=Nod (Sum.b, Sum.a);
    Sum.a=Sum.a/c;
    Sum.b=Sum.b/c;
    return Sum;
    }
 
Rational Rational::Mult (const Rational&s) const
    {
    int c;
    Rational Sum;
    Sum.a=a*s.a;
    Sum.b=b*s.b;
        if (Sum.a>Sum.b)
        c=Nod (Sum.b, Sum.a);
    else
    c=Nod (Sum.b, Sum.a);
    Sum.a=Sum.a/c;
    Sum.b=Sum.b/c;
    return Sum;
    }
 
Rational Rational::Div (const Rational&s) const
    {
    int c;
    Rational Sum;
    Sum.a=a*s.b;
    Sum.b=b*s.a;
    if  (s.a==0)
        {cout<<"nelzia delit na Zero"<<endl;
        exit (1);};
    if (Sum.a>Sum.b)
        c=Nod (Sum.b, Sum.a);
    else
    c=Nod (Sum.b, Sum.a);
    Sum.a=Sum.a/c;
    Sum.b=Sum.b/c;
    return Sum;
    }
void Rational::Print () const
    {cout<<a<<"/"<<b<<endl;}
void Rational::Change (int d, int e)
    {int f;
    a=d;
    if (e)
        b=e;
    else
    {cout<<"ne mogu delit na zero"<<endl;
    exit (1);};
    if (a>b)
        f=Nod(a,b);
    else 
        f=Nod(b,a);
    a=a/f;
    b=b/f;
    }
 
int Rational::Nod (int c, int d) const
    {
    if (d==0)
        return c;
    if (c%d==0)
    return 1;
    return Nod (d, c%d);
    }
 
 
 
int main ()
{
    Rational R1 (7,11), R2 (0,7), R3;
R3=R1.Add(R2);
R1.Print();
R2.Print();
R3.Print();
 
R3=R1.Sub(R2);
R3.Print();
R3=R2.Sub(R1);
R3.Print();
R3=R1.Mult(R2);
R3.Print();
R3=R1.Div(R2);
R3.Print();
 
 
 
return 0;
}
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
21.10.2011, 22:13     создание класса #4
alex_, чего вы не проходили? модификатор const после заголовка функции? ну так удалите его везде
alex_
4 / 4 / 1
Регистрация: 03.06.2011
Сообщений: 35
23.10.2011, 19:27  [ТС]     создание класса #5
удаляю const выходит ошибка
[Linker Error] Unresolved external 'Rational::Rational(int, int)' referenced from D:\Ñ++\ÍÎÂÀß ÏÀÏÊÀ (3)\UNIT1.OBJ
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
23.10.2011, 22:23     создание класса #6
alex_, надо этот const после заголовка функций удалить не только в классе, но и далее по тексту в определении функций, и все будет работать
Yandex
Объявления
23.10.2011, 22:23     создание класса
Ответ Создать тему
Опции темы

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