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

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

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

Ребят, подскажите как исправить ошибку... - C++

15.02.2012, 17:39. Просмотров 531. Ответов 3
Метки нет (Все метки)

не могу понять , много что перепробывал компилятор C++ builder codegear
вот собственно сам код
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <iostream.h>
 #pragma argsused
 
//---------------------------------------------------------------------------
 
#pragma argsused
class Pair
    {
        public:
            bool t;
            Pair(int,int);
            int get_a();
            int get_b();
            void print();
            void set(int, int);
            friend Pair operator* (Pair,Pair);
            friend Pair operator- (Pair,Pair);
            //friend Pair operator== (Pair,Pair);
            void oper(Pair,Pair);
        private:
            int a;
            int b;
    } ;
 
 
Pair::Pair(int a1, int b1 )
{
    a=a1;
    b=b1;
}
int Pair::get_a()
{
return a;
}
int Pair::get_b()
{
return b;
}
 
Pair operator* (Pair p1, Pair p2)
{
Pair p3(0,0);
p3.a=p1.a*p2.a;
p3.b=p1.b*p2.b;
return p3;
}
Pair operator- (Pair p1, Pair p2)
{
Pair p3(0,0);
p3.a=p1.a-p1.b;
p3.b=p2.a-p2.b;
return p3;
}
 
//bool operator== (Pair p1, Pair p2)
void Pair::oper(Pair p1, Pair p2)
{
    if ((p1.a == p2.a) && (p1.b=p2.b))
    {
    t=true;
    }
 
}
void Pair :: print()
{
    cout<<a<<','<<b<<endl;
}
class Rational : public Pair
{
        public:
            Rational(int,int);
            void print();
 
            friend Rational operator+ (Pair,Pair);
            friend Rational operator/ (Rational,Rational);
            friend Pair operator-(Pair,Pair);
        private:
            int a;
            int b;
};
 
 
 
Rational::Rational(int a, int b) : Pair(a, b)
{
    a = a;
    b = b;
}
 
void Rational ::   print()
{
    cout<<a<<','<<b<<endl;
}
Rational operator/ (Pair p1, Pair p2)
{
Rational p3(0,0);
 
p3.a=p1.a*p2.b;
p3.b=p1.b*p2.a;
return p3;
}
Pair operator+ (Pair p1, Pair p2)
{
Pair p3(0,0);
p3.a=p1.a*p2.b+p1.b*p2.a;
p3.b=p1.b*p2.b;
return p3;
}
Pair operator- (Pair p1, Pair p2)
{
Pair p3(0,0);
p3.a=p1.a*p2.b-p1.b*p2.a;
p3.b=p1.b*p2.b;
return p3;
}
int main(int argc, char* argv[])
{
 
 
    pair1 p1(-2,0),p2(1,1),p(0,0);
    p=p1*p2;
    p.print();
    return 0;
}
//---------------------------------------------------------------------------

начинает давать ошибку
здесь


C++
1
2
3
4
5
6
7
8
Rational operator/ (Pair p1, Pair p2)
{
Rational p3(0,0);
 
p3.a=p1.a*p2.b;
p3.b=p1.b*p2.a;
return p3;
}


пишет
[BCC32 Error] File1.cpp(103): E2247 'Rational::a' is not accessible
[BCC32 Error] File1.cpp(104): E2247 'Rational::b' is not accessible
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2012, 17:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ребят, подскажите как исправить ошибку... (C++):

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int a,int b) { ...

Подскажите как исправить ошибку - C++
Здравствуйте! Подскажите, как исправить ошибку при выполнении программы: #include &lt;iostream&gt; #include &lt;stdarg.h&gt; using namespace std;...

Подскажите как исправить ошибку - C++
писал программу по заданию и не могу понять где ошибка но у меня она решает не правильно Сформировать одномерный массив из целых чисел....

подскажите как исправить ошибку - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #define eps 1.e-6 double f_ln( double, double ); void main() ...

Подскажите, как исправить ошибку - C++
void crop(char *str) { while (*str) { char i = 'q'; if (*str == ' ') { *str = i; //ошибка здесь cout &lt;&lt; str &lt;&lt; '\n'; ...

Подскажите как исправить ошибку - C++
Мужики, программы пишу на Dev-C++ И при любой программе выдаёт ошибку,как исправить это?

3
NoMasters
Псевдослучайный
1764 / 1107 / 73
Регистрация: 13.09.2011
Сообщений: 3,143
15.02.2012, 19:05 #2
Сделай функцию дружественной(у тебя она дружественная только для параметров типа Rational), она до private членов дотянуться не может.
Цитата Сообщение от zhmukh Посмотреть сообщение
C++
1
Rational::Rational(int a, int b) : Pair(a, b) { a = a; b = b; }
А это что должно было делать?
0
retmas
Жарю без масла
864 / 746 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
15.02.2012, 19:14 #3
имея то, что имеем, можно написать
C++
1
2
3
4
Rational operator/ (Pair p1, Pair p2)
{
   return Rational(p1.get_a() * p2.get_b(), p1.get_b() * p2.get_a());
}
но лучше все удалите и подумайте еще раз как реализовать вашу задумку. уж больно много нелепостей
0
zhmukh
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 4
15.02.2012, 19:32  [ТС] #4
а как переопределить оператор в наследственном классе?
мне компилятор пишет что использовался уже ранее..
0
15.02.2012, 19:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2012, 19:32
Привет! Вот еще темы с ответами:

Подскажите, как исправить 1 ошибку в программе? - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; double min = 0; /* зовнiшня змiнна */ int...

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

Ребят, можете помочь исправить ошибку, долго с ней мучался. - C++
Эта задача не работает полностью.Это программа с использованием меню. Зацикливается,когда переходит к case3. Помогите пожалуйста. ...

Вот код, подскажите как исправить ошибку, пожалуйста??? - C++
Вот вибивает такие ошибки: 1&gt;c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(40) : error C2661: D3:: D3: нет перегруженной функции,...


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

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

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