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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Villya
0 / 0 / 0
Регистрация: 12.06.2010
Сообщений: 32
#1

Как совместить код, реализующий методы и перегружаемые операции - C++

11.04.2011, 23:14. Просмотров 1085. Ответов 4
Метки нет (Все метки)

Есть такое задание:::
Разработать класс «Вектор» – Vektor размерности n . Определить несколько конструкторов, в том числе конструктор копирования. Реализовать методы для вычисления модуля вектора, скалярного произведения, сложения, вычитания, умножения на константу. Перегрузить операции сложения, вычитания, умножения, инкремента, декремента, индексирования, присваивания для данного класса

Я реализовал класс Vektor, определить несколько конструкторов, реализовать методы для вычисления модуля вектора, скалярного произведения, сложения, вычитания, умножения на константу
Код рабочий
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
const int N=10;
using namespace std;
class Vektor {
        float a1, a2, b1, b2; // значения координат
public:
    Vektor::Vektor(float i,float j, float k, float m)
    {a1 = i; a2 = j; b1 = k; b2 = m;}
double Modul();
    float SkalyarProizv();
    float Sloshenie1();
    float Sloshenie2();
    float Vuchitenie1();
    float Vuchitenie2();
    float UmnoshenieNaConstanty1();
    float UmnoshenieNaConstanty2();
}
double Vektor::Modul()
{return sqrt(a1*a1-b1*b1+a2*a2-b2*b2);}
float Vektor::SkalyarProizv()
{return a1*b1+a2*b2;}
float Vektor::Sloshenie1()
{return a1+b1;}
float Vektor::Sloshenie2()
{return a2+b2;}
float Vektor::Vuchitenie1()
{return a1-b1;}
float Vektor::Vuchitenie2()
{return a2-b2;}
float Vektor::UmnoshenieNaConstanty1()
{return N*(a1*b1);}
float Vektor::UmnoshenieNaConstanty2()
{return N*(a2*b2);}
void main ()
{float V1,V2,F1,F2;
cin>>V1>>V2>>F1>>F2;
Vektor VV(V1,V2,F1,F2);
cout<<"Вычисление модуля вектора:="<<VV.Modul()<<endl;
cout<<"Вычисление скалярного произведения вектора:="<<VV.SkalyarProizv()<<endl;
cout<<"Сложение векторов:="<<VV.Sloshenie1()<<","<<VV.Sloshenie2()<<endl;
cout<<"Вычитание векторов:="<<VV.Vuchitenie1()<<","<<VV.Vuchitenie2()<<endl;
cout<<"Умножение векторов на константу:="<<VV.UmnoshenieNaConstanty1()<<","<<VV.UmnoshenieNaConstanty2()<<endl;
}
 
[size="1"][color="grey"][I]Добавлено через 8 минут[/I][/color][/size]
Также перегрузил операции кроме индексирования
Vektor operator+(Vektor ob2);
    Vektor operator-(Vektor ob2);
    Vektor operator*(Vektor ob2);
    Vektor operator++(Vektor ob2);
    Vektor operator--(Vektor ob2);
    Vektor operator=(Vektor ob2);
};
// Перегрузка оператора + относительно класса coord
Vektor Vektor::operator+(Vektor ob2)
{
    Vektor temp;
 
    temp.a1 = a1 + ob2.b1;
    temp.a2 = a2 + ob2.b2;
    return temp;
}
 
// Перегрузка оператора - относительно класса coord
Vektor Vektor::operator-(Vektor ob2)
{
    Vektor temp;
    temp.a1 = a1 - ob2.b1;
    temp.a2 = a2 - ob2.b2;
    return temp;
}
// Перегрузка оператора - относительно класса coord
Vektor Vektor::operator*(Vektor ob2)
{
    Vektor temp;
    temp.a1 = a1 * ob2.b1;
    temp.a2 = a2 * ob2.b2;
    return temp;
}
// Перегрузка оператора - относительно класса coord
Vektor Vektor::operator++(Vektor ob2)
{
    Vektor temp;
    temp.a1 = ++;
    temp.a2 = ++;
    temp.b1 = ++;
    temp.b2 = ++;
    return temp;
}
// Перегрузка оператора - относительно класса coord
Vektor Vektor::operator*(Vektor ob2)
{
    Vektor temp;
    temp.a1 = --;
    temp.a2 = --;
    temp.b1 = --;
    temp.b2 = --;
    return temp;
}
// Перегрузка оператора = относительно класса coord
Vektor Vektor::operator=(Vektor ob2)
{
    Vektor temp;
    temp.a1 = b1;
    temp.a2 = b2;
    return temp; // возвращение объекта, которому присвоено значение
}
 
Вот помогите мне включить их в [U]void main[/U]
Также существует ошибка в ++ и --
я наверно, что не так сделал
 
[size="1"][color="grey"][I]Добавлено через 3 минуты[/I][/color][/size]
#include "stdafx.h"
#include <iostream>
в первом коде забыл поставить ;
#include <math.h>
const int N=10;
using namespace std;
class Vektor {
float a1, a2, b1, b2; // значения координат
public:
Vektor::Vektor(float i,float j, float k, float m)
{a1 = i; a2 = j; b1 = k; b2 = m;}
double Modul();
float SkalyarProizv();
float Sloshenie1();
float Sloshenie2();
float Vuchitenie1();
float Vuchitenie2();
float UmnoshenieNaConstanty1();
float UmnoshenieNaConstanty2();
};
Добавлено через 20 часов 47 минут
как перегрузить 1 операцию и 1 метод, и вывести в Void main
Покажите пример, пожалуйста

Добавлено через 6 часов 29 минут
Хто-небудь помогите с задачей.



ПОМОЩЬ НЕ ЗНАЧИТ РЕШИТЬ ВСЕ, а ПРОСТО ПРИВЕДИТЕ ПРИМЕР КУСОЧЕК(1 МЕТОД + 1 ОПЕРАЦИЯ И ВЫВОД ИХ В VOID MAIN ИЛИ INT MAIN)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2011, 23:14     Как совместить код, реализующий методы и перегружаемые операции
Посмотрите здесь:

C++ Перегружаемые функции
Перегружаемые функции C++
перегружаемые функции C++
Написать перегружаемые функции умножения разного количества параметров C++
C++ Создать перегружаемые функции и шаблоны для типов int и double
Как совместить два (или больше) информационных потока? C++
C++ можно ли делать виртуальными перегружаемые операторы?
Задачка на классы (Создать методы, выполняющие поразрядные операции) C++
Исправить код, реализующий алгоритм сортировки C++
C++ Опишите абстрактный базовый класс "строка",реализующий методы ввода-вывода строки
Как совместить wxWidgets 3.0.2 и MVS 2013 Ultimate C++
Написать код, реализующий поиск в матрице значения, заданного пользователем C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
11.04.2011, 23:41     Как совместить код, реализующий методы и перегружаемые операции #2
а я не пойму, в задании речь об n-мерном, а у вас - четырёх))

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
Vektor Vektor::operator*(Vektor ob2)
{
    Vektor temp;
        temp.a1 = --;
        temp.a2 = --;
        temp.b1 = --;
        temp.b2 = --;
    return temp;
}
просто убило... что это?
Villya
0 / 0 / 0
Регистрация: 12.06.2010
Сообщений: 32
12.04.2011, 00:47  [ТС]     Как совместить код, реализующий методы и перегружаемые операции #3
соглашусь с вами, я немного переборщил

Vektor Vektor::operator*(Vektor ob2)
{
Vektor temp;
temp.ob2 = --;
return temp;
}

Вот такой хм, вариант да?
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
12.04.2011, 00:50     Как совместить код, реализующий методы и перегружаемые операции #4
да что это значит то вообще? у вас .ob2 объявлён в private, слева от равенства дикрепент, который не понятно что значит вообще. чем это компилируется? что это вообще? всё в разброс, непонятно как разогнано не понятно зачем...
Villya
0 / 0 / 0
Регистрация: 12.06.2010
Сообщений: 32
12.04.2011, 01:07  [ТС]     Как совместить код, реализующий методы и перегружаемые операции #5
Допустим , хочу перегрузить, используя float, которое используя в void main
Vektor Vektor::operator*(float)
{
Vektor temp;
temp--;
return temp;
}
Значит необходим соотвествующий конструктор, не так ли?

Добавлено через 1 минуту
Sorry
Допустим , хочу перегрузить, используя float, которое используя в void main
Vektor Vektor::operator--(float)
{
Vektor temp;
temp--;
return temp;
}
Значит необходим соотвествующий конструктор, не так ли?

Добавлено через 2 минуты
Вот вариант наиболее логичный для использования, так как float нельзя использовать(вырыл в инете) надо int
Vektor Vektor::operator--(int)
{
Vektor temp;
temp--;
return temp;
}
Yandex
Объявления
12.04.2011, 01:07     Как совместить код, реализующий методы и перегружаемые операции
Ответ Создать тему
Опции темы

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