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

Перегруженные операции - C++

Восстановить пароль Регистрация
 
Dmi3y93
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 5
03.05.2012, 06:23     Перегруженные операции #1
Задача: Класс «Прямая» должен включать поля данных: коэффициенты прямой y = ax +b; методы: вывод уравнения прямой на экран, определение точек пересечения с осями и перегруженные операции: проверка перпендикулярности прямых (!=), определение угла между двумя прямыми (%).
Помогите пожалуйста разобраться как сделать перегруженные операции.
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
#include <QtCore/QCoreApplication>
#include <iostream>
#include <math.h>
 
using namespace std;
 
class line
{public:
        int a;
        int b;
        
//=====Вывод уравнения=====
        void equation()
        {   cout << endl << "Result:" << endl;
            cout << "Equation -> y=" << a << "x+" << b << endl;
        }
//=====Пересечение прямых=====
        void intersection()
        {   if(a!=0 && b!=0) {cout << "Intersections: y=" << a*0+b << "; x=" << (-b)/a << endl;} else
            if(a==0 && b==0) {cout << "Intersections: y = Ox" <<endl;};
            if(a==0 && b!=0) {cout << "Intersections: y=" << b << "; line is not intersection with OX" << endl;}
            if(a!=0 && b==0) {cout << "Intersections: y=0; x=0" << endl;}
        }
//=====Проверка перпендикулярности прямых=====
        void perpendicularity()
        {
        }
//=====Нахождение угла=====        
        void angle()
        {
        }
        
 
 
};
 
int main()
{   line l;
        cout << "Equation 1:" << endl;
        cout << "Enter a=";
        cin >> l.a;
        cout << "Enter b=";
        cin >> l.b;
        l.equation();
        l.intersection();
    line l2;
        cout << "__________________________________" << endl <<endl;
        cout << "Equation 2:" << endl;
        cout << "Enter a2=";
        cin >> l2.a;
        cout << "Enter b2=";
        cin >> l2.b;
        l2.equation();
        cout << "__________________________________" << endl <<endl;
 
 
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2012, 06:23     Перегруженные операции
Посмотрите здесь:

C++ Перегруженные функции
Класс «Дата» - поля данных и перегруженные операции C++
перегруженные функции C++
C++ Перегруженные функции
Перегруженные функции C++
Перегруженные функции C++
C++ Перегруженные функции
C++ Перегруженные функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
03.05.2012, 09:03     Перегруженные операции #2
Условие перпендикулярности прямых y1 = a1x + b1 и y2 = a2x + b2:
a1*a2 + b1*b2 = 0;

Угол между прямыми: tg(z) = (a1*b2 - a2*b1) / (a1*a2 + b1*b2)
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
03.05.2012, 10:16     Перегруженные операции #3
Например, вместо
C++
1
2
3
4
//=====Проверка перпендикулярности прямых=====
        void perpendicularity()
        {
        }
Надо использовать
C++
1
2
3
4
5
6
7
bool operator!=(line L2)
{
    if(a*L2.a + b*L2.b==0)
          return true;
    return false;
 
}
Замечание: a и b по правильному надо делать private.
Yandex
Объявления
03.05.2012, 10:16     Перегруженные операции
Ответ Создать тему
Опции темы

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