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

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

Войти
Регистрация
Восстановить пароль
 
sanchez.1
2 / 2 / 0
Регистрация: 01.11.2011
Сообщений: 8
#1

перегрузка оператора! - C++

25.04.2012, 16:04. Просмотров 349. Ответов 1
Метки нет (Все метки)

Помогите сложить диагонали , при помоши перегрузки оператора+, чтобы можно было написать в maine: c1+c2+c3.заранее спасибо!
C++ (Qt)
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
137
138
139
#include<iostream>
#include<math.h>
using namespace std;
 
class Taskas
{
    
private:
double x;
double y;
public:
    Taskas( ): x(0.), y(0.) { } 
    Taskas(double xx, double yy ): x(xx), y(yy) {}
 ~Taskas( ) { } 
void ivest(char c) {
    cout<<"VVedite "<<c<< "  Koordinaty versny:"<<endl;
    cin>>x>>y;}
void rodyti(char c) {cout<<c<< " Koordinaty versny: "<<x<<" "<<y<<endl;}
double gaukX() {return x;}
double gaukY() {return y;}
};
class staciakampis
{
    
private:
    Taskas a,b,c,d;
    double kr1,kr2,kr3,kr4;
    double istr;
public:
        staciakampis( ): a( 0.,0. ), b( 0.,0. ), c( 0.,0. ), d(0.,0.) { }  
 staciakampis( double ax, double ay,                     
                  double bx, double by, 
                  double cx, double cy,
                  double dx, double dy):  
a( ax, ay ), b( bx, by ),c( cx, cy ),d(dx,dy) { }  
 ~staciakampis( ) { } 
 
 void rastiTaskus(){
     
         cout<<"VVedite koordinaty:"<<endl;
 a.ivest('A');
 b.ivest('B');
 c.ivest('C');
 d.ivest('D');
     } 
 void rodytiTaskus(){
 cout<<"Koordinaty:"<<endl;
 a.rodyti('A');
 b.rodyti('B');
 c.rodyti('C');
 d.rodyti('D');
 }
 void tikrinimas(){
 
 if(a.gaukX()==b.gaukX()){
            kr1=a.gaukY()-b.gaukY();
            kr3=c.gaukY()-d.gaukY();
        }
        else if(a.gaukX()==c.gaukX()){
        
        kr1=a.gaukY()-c.gaukY();
        kr3=b.gaukY()-d.gaukY();
                }
        else if(a.gaukX()==d.gaukX()){
            kr1=a.gaukY()-d.gaukY();
            kr3=b.gaukY()-c.gaukY();
        }
        else{
        cout<<"eto ne priamougolnik!"<<endl;
        exit(-1);
        }
        if(a.gaukY()==b.gaukY()){
            kr2=a.gaukX()-b.gaukX();
            kr4=c.gaukX()-d.gaukX();
        }
        else if(a.gaukY()==c.gaukY()){
        
        kr2=a.gaukX()-c.gaukX();
        kr4=b.gaukX()-d.gaukX();
        
        }
        else if(a.gaukY()==d.gaukY()){
 kr2=a.gaukX()-d.gaukX();
 kr4=b.gaukX()-c.gaukX();
        }
        else{
            cout<<"eto ne priamougolnik!"<<endl;
        exit(-1);
        }
        if(kr1!=kr3 && kr2!=kr4){
        cout<<"eto ne priamougolnik!"<<endl;
        exit(-1);
        }
 }
    void istrizaine(){
        
    double d=(kr1*kr1+kr2*kr2);
   istr=sqrt(d);
   cout<<"Dlina diagonali: "<<istr<<endl;
    }
    double rD(){
    return istr;
    }
    
    void maxd(staciakampis &c1,staciakampis &c2,staciakampis &c3){
double xmas[3]={c1.rD(),c2.rD(),c3.rD()};
double gg;
double maxD=0;
for(int i=0;i<3;i++){
    if(xmas[i]>maxD){
        maxD=xmas[i];
    gg=i;
    }
    }
gg++;
cout<< endl<<gg<<"-o staciakampio istrizaine didziausia - "<<maxD<<endl;
    }};
 
 
int main()
{
staciakampis c1(0,1,0,4,3,1,3,4),c2,c3;
c1.tikrinimas();
c1.rodytiTaskus();
c1.istrizaine();
 
c2.rastiTaskus();
c2.tikrinimas();
c2.rodytiTaskus();
c2.istrizaine();
 
c3.rastiTaskus();
c3.tikrinimas();
c3.rodytiTaskus();
c3.istrizaine();
 
c1.maxd(c1,c2,c3);
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2012, 16:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перегрузка оператора! (C++):

Перегрузка оператора += - C++
У меня имеется структура и метод, который вызывается след образом: A.plus_and_minus(B); Есть огромное желание перегрузить функцию += ,...

Перегрузка оператора = - C++
Есть некий класс. И два класса-наследника. Надо перегрузить оператор =, к тому же в дочерних классах вызывать перегрузку в базовом классе....

Перегрузка оператора = - C++
помогите создать перегруженный оператор = в классе Х, который будет копировать содержание строки S1 в S2.

Перегрузка оператора = - C++
Как перегрузить оператор = для char ?

Перегрузка оператора - C++
Подскажите пожалуйста, способ перегрузки операторов &gt;= и &lt;= в следующей строке if ( ob.str &gt;= '0' &amp;&amp; ob.str &lt;= '9' )Мой вариант не...

Перегрузка оператора != - C++
Помогите разобраться с перегрузкой оператора != есть класс, в котором, в разделе private объявлен указатель на массив std::string *str; ...

1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.04.2012, 16:19 #2
в класс staciakampis добавить
C++
1
2
3
4
5
6
    staciakampis& operator+=(const staciakampis& ob)
    {
        //сложение диагоналей
 
        return *this;
    }
после класса добавить
C++
1
2
3
4
5
6
const staciakampis operator+(const staciakampis& ob1, const staciakampis& ob2)
{
    staciakampis tmp(ob1);
    tmp += ob2;
    return tmp;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2012, 16:19
Привет! Вот еще темы с ответами:

перегрузка оператора () - C++
Вопрос заключается в следующем: - Что собой представляет перегружаемый оператор()? - Как его перегрузить? ( обычные операторы тип ++ и...

Перегрузка оператора == - C++
Пытаюсь перегрузить оператор == . Делаю так: В классе: class cData // класс дата { int year; // год short mounth; //...

Перегрузка оператора += - C++
Создал класс дробь. Пытаюсь перегрузить оператор += (или -=, *=, /=) А компилятор выдаёт ошибку 'drob operator+=(drob&amp;)' must take...

Перегрузка оператора [] - C++
Сделал простой аналог auto_ptr для дин. массива. Файл #ifndef ARRAY_PTR_GUARD #define ARRAY_PTR_GUARD template&lt; class Ty_ &gt; ...


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

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

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