Размещено 4 года назад по предмету
Информатика
от Diyar13
C++
Отдам последние баллы:
(1)
Создайте два класса описывающие эти геометрические объекты: Point и Vector. При этом Point(0.0, 1.0, 2.0) будет точкой в координатном пространстве x = 0.0, y = 1.0 и z = 2.0. А Vector(1.0, 0.0, 0.0) будет вектором, представляющим направление только вдоль положительной оси x длиной 1.0.
Вектор может применятся к точке для перемещения точки на новую позицию. Это делается путем добавления направления вектора к позиции точки. Например, Point(0.0, 1.0, 2.0) + Vector(0.0, 2.0, 0.0) даст точку Point(0.0, 3.0, 2.0). Создайте для этой операции функцию movePointByVector(). Сделайте это всеми из перечисленных способов:
a) объявите функцию movePointByVector() отдельно от классов Point и Vector, объекты этих классов предаются как параметры в эту функцию, в результате функция возвращает новый объект класса Point;
b) объявите класс Point дружественным классу Vector и реализуйте метод movePointByVector () в классе Point;
c) объявите метод Point:: movePointByVector () дружественным классу Vector;
d) объявите класс Vector дружественным классу Point и реализуйте метод movePointByVector () в классе Vector;
e) объявите метод Vector:: movePointByVector () дружественным классу Point
(2)
Доработайте программу из 1 задания, заменив функционал метода movePointByVector() перегрузкой операторов сложения и вычитания для соответствующих операндов. Кроме того, перегрузите оператор [] для получения значений координат x, y, z по соответствующему индексу 0,1,2 и символу “x”, “y”, “z”, и операторы ввода и вывода.