Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
#1

Класс Triangle

26.05.2013, 17:19. Просмотров 624. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста реализовать перегрузку операции ++ и -- которая одновременно увеличивает (уменьшает) значение полей a,b,c на 1

Добавлено через 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
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
class Triangle
{
private:
    int a;
    int b;
    int c;
    static int count;
public:
          void SetABC(int a,int b,int c)
      {
          this->a=a;
          this->b=b;
          this->c=c;
      }
    void Show(string info)
    {
        cout<<"Triangle"<<info<<":("<<a<<","<<b<<","<<c<<")"<<endl;
    }
    
        double Perimetr()
    {
        return a+b+c;
    }
    
        
        double ploshad(int a, int b,int c, double P,int S)
        {
        P=(a+b+c)/2;
        S=sqrt(P*(P-a)*(P-b)*(P-c));
        return S;
    }
 
        bool proverka (int a, int b, int c)
{
    return ((a + b > c) && (b + c > a) && (c + a > b));
}
Triangle operator++()
{
    return Triangle ();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 17:19
Ответы с готовыми решениями:

Реализовать класс Triangle (задание 25), опираясь на класс Angle из задания 26 для представления углов
Реализовать класс Triangle (задание 25), опираясь на класс Angle из задания 26...

Класс Triangle
Помогите подправить код. Вот задание: создать класс Triangle для представления...

Класс Triangle
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; class...

Класс Triangle
Помогите с заданием очень прошу! Не могу разобраться. Много ошибок помогите....

Класс Triangle ошибка
Помогите исправить ошибку класса: #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

5
behemoth
44 / 30 / 18
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
26.05.2013, 17:38 #2
как-то так шоле:
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
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
class Triangle
{
private:
int a;
int b;
int c;
static int count;
public:
void SetABC(int a,int b,int c)
{
this->a=a;
this->b=b;
this->c=c;
}
void Show(string info)
{
cout<<"Triangle ("<<info<<""<<a<<","<<b<<","<<c<<")"<<endl;
}
 
double Perimetr()
{
return a+b+c;
}
 
 
double ploshad(int a, int b,int c, double P,int S)
{
P=(a+b+c)/2;
S=sqrt(P*(P-a)*(P-b)*(P-c));
return S;
}
 
bool proverka (int a, int b, int c)
{
return ((a + b > c) && (b + c > a) && (c + a > b));
}
Triangle* operator++()//prefix
{
this->a++;
this->b++;
this->c++;
return this;
} 
Triangle* operator++(int)//postfix
{
this->a++;
this->b++;
this->c++;
return this;
} 
Triangle* operator--()//prefix
{
this->a--;
this->b--;
this->c--;
return this;
} 
Triangle* operator--(int)//postfix
{
this->a--;
this->b--;
this->c--;
return this;
} 
};
int main(int argc, char** argv) {
    Triangle t;
    t.SetABC(5,5,5);
    t++;    //postfix
    --t;     //prefix
    t--;     //postfix
    t.Show("");
}
1
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
26.05.2013, 17:46  [ТС] #3
а не подскажешь где ошибка если вот так реализовать
C++
1
2
3
4
Triangle operator++()
{
    return Triangle (++a,++b,++c);
}
0
behemoth
44 / 30 / 18
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
26.05.2013, 17:55 #4
ты хочешь вернуть новый обьект без вызова оператора new. у тебя нету такого конструктора.
если тебе хочеться так то вот как оно должно быть:
C++
1
2
3
4
5
6
7
8
9
10
Triangle(int a,int b,int c){
        this->a=a;
        this->b=b;
        this->c=c;
}
Triangle(){}
Triangle* operator++()
{
    return new Triangle (++a,++b,++c);
}
1
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
26.05.2013, 18:06  [ТС] #5
спасибо

Добавлено через 3 минуты
извиняюсь, а не подскажешь как реализовать перегрузку операции *: которая умножает поля a,b,c на заданный скаляр
0
pizurok
76 / 68 / 19
Регистрация: 05.05.2013
Сообщений: 3,807
26.05.2013, 18:56 #6
Цитата Сообщение от behemoth Посмотреть сообщение
ты хочешь вернуть новый обьект без вызова оператора new. у тебя нету такого конструктора.
если тебе хочеться так то вот как оно должно быть:
C++
1
2
3
4
5
6
7
8
9
10
Triangle(int a,int b,int c){
        this->a=a;
        this->b=b;
        this->c=c;
}
Triangle(){}
Triangle* operator++()
{
    return new Triangle (++a,++b,++c);
}
В плюсах для создания объекта не обязательно вызывать new
мой вариант:
C++
1
2
3
4
5
6
Triangle(){}
Triangle(int _a,int _b,int _c) : a(_a), b(_b), c(_c) {}
Triangle& operator++()
{
    return Triangle (++a,++b,++c);
}
И не надо юзать указатели

Добавлено через 1 минуту
Цитата Сообщение от Nikita9413 Посмотреть сообщение
спасибо

Добавлено через 3 минуты
извиняюсь, а не подскажешь как реализовать перегрузку операции *: которая умножает поля a,b,c на заданный скаляр
C++
1
2
3
4
Triangle& operator*(float scalar)
{
    return Triangle(a*scalar, b*scalar, c*scalar);
}
0
26.05.2013, 18:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2013, 18:56

Класс треугольников Triangle
Ребят, надеюсь у Вас будет минутка свободного времени для меня. Дело в том, что...

Создать класс triangle
всем доброго времени суток помогите бедному студенту просто физически не...

Класс Triangle ошибка
Помогите пожалуйста исправить ошибку #include &lt;iostream&gt; #include &lt;cmath&gt; ...


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

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

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