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

Объясните код. Класс вектор - C++

01.11.2017, 23:43. Просмотров 92. Ответов 0
Метки нет (Все метки)

Задание было : Создать класс трехмерный вектор и выполнить операции +-, скаляр, *, длина

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
#include <iostream>
#include <cmath>
#include <cstdlib>
 
using namespace std;
 
class TVector
{
   private:
      double x, y, z;
 
   public:
      TVector(): x(0), y(0), z(0) { ; }
      TVector(double theX, double theY, double theZ)
         : x(theX), y(theY), z(theZ) { ; }
      ~TVector() { ; };
 
      double Lenght() const //длина
      {
         return sqrt(x*x + y*y + z*z); //вычисляем корень квадратный
      }
 
      TVector operator + (const TVector& obj) const  //Сложение
      {
         return TVector(x+obj.x, y+obj.y, z+obj.z);
      }
 
      double operator % (const TVector& obj) const  //Длина
      {
         return (x*obj.x + y*obj.y + z*obj.z);
      }
 
      TVector operator * (const TVector& obj) const //Умножение
      {
         return TVector(y*obj.z - z*obj.y, z*obj.x - x*obj.z, x*obj.y - y*obj.x);
      
После этого не совсем понимаю что происходит и как это работает , да и до этого смутно
 
  TVector& SetX(double x)
      {
         this->x = x;
 
         return *this;
      }
 
      TVector& SetY(double y)
      {
         this->y = y;
 
         return *this;
      }
 
      TVector& SetZ(double z)
      {
         this->z = z;
 
         return *this;
      }
 
      double GetX() const
      {
         return x;
      }
 
      double GetY() const
      {
         return y;
      }
 
      double GetZ() const
      {
         return z;
      }
};
 
ostream& operator << (ostream& os, const TVector& obj)
{
   os << "{ " << obj.GetX() << ", " << obj.GetY() << ", " << obj.GetZ() << " }";
 
   return os;
}
 
istream& operator >> (istream& is, TVector& obj)
{
   double x, y, z;
 
   is >> x >> y >> z;
 
   obj.SetX(x).SetY(y).SetZ(z);
 
   return is;
}
 
int main()
{
   TVector def;
   cout << "default vector = " << def << endl;
 
   TVector vec1(1, 2, 3);
   TVector vec2(2, 3, 4);
   TVector vec3(3, 4, 5);
 
   TVector r = (vec1 + vec2) * vec3;
 
   double t = (vec1 + vec3) % vec3;
   cout << "r = " << r << endl;
 
   cout << "t = " << t << endl
        << "mod vec1 = " << vec1.Lenght() << endl
        << "mod vec2 = " << vec2.Lenght() << endl
        << "mod vec3 = " << vec3.Lenght() << endl
        << "mod r = " << r.Lenght() << endl;;
 
   cout << "input vector a (X, Y, Z): ";
   TVector a;
   cin >> a;
   cout << a << endl;
 
   double x;
   cout << "input X for vector vec1: ";
   cin >> x;
   vec1.SetX(x);
 
   cout << vec1 << endl;
 
   system("pause");
 
   return 0;
}

http://www.cyberforum.ru/cpp-beginners/thread1194475.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2017, 23:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Объясните код. Класс вектор (C++):

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс &quot;вектор&quot; с...

Создать класс, полем которого является класс вектор
как это выглядит?

Класс матрица,объясните
Сегодня стал передо мной вопрос создания класса матрицы для создания учебной...

Класс вектор С++
Вектор. Члены класса: 3 прямоугольные декартовые координаты. Методы:...

Класс вектор
Здраствуйте! Помогите организовать класс вектор, в котором есть методы...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2017, 23:43
Привет! Вот еще темы с решениями:

Класс вектор
У меня есть задача: Разработать пользовательский тип “ вектор в n-мерном...

Класс вектор
Помогите сделать

Класс вектор
необходимо написать класс вектор (в геометрическом смысле в трёхмерном...

Вектор класс
Всем привет!!! Вот написал программу с класами а она не правильно работеает....


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

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

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