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

Перегрузка оператора + - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Копиляция программы работы с COM портом http://www.cyberforum.ru/cpp-beginners/thread1210770.html
...доброго времени суток, уважаемые форумчане!... не могу понять, как "победить" эти ошибки (скрин-шот, а также проект - COM_1.rar прилагаются)... не связаны ли они с тем, что работаю в Visual Studio 2008, а не в 2010? ...исходник взят отсюда http://how2.org.ua/программирование/работа-с-com-портом-на-c-в-windows.html , а сама страница в архиве - Работа с COM портом на C++ в Windows _...
C++ Присваивание элементов двумерного массива другому двумерному массиву нужно элементы одного двумерного массива присвоить другому. Вот программа. Но для одномерного массива она работает, если соответственно убрать второй индекс, а для двумерного нет. Подскажите,, в чем ошибка? # include <iostream> # include <conio.h> using namespace std; int main() { double a, b; http://www.cyberforum.ru/cpp-beginners/thread1210746.html
Не могу понять в чем ошибка? C++
#include <stdlib.h> #include <iostream.h> #include <conio.h> #include <graphics.h> #include <math.h> #include <process.h> int XMAX, YMAX, COLORMAX; double RATIO;
C++ Нужен простой калькулютор
Пожалуйста помогите нужен простой калькулятор, в С++ но неделю, учюсь, да и если не трудно, можете обяснить, большое спасибо
C++ Найти площадь образовавшейся трапеции по формуле http://www.cyberforum.ru/cpp-beginners/thread1210715.html
В правильном треугольнике проведена средняя линия. Найти площадь трапеции, образовавшуюся, дважды используя функцию вычисления площади правильного треугольника по формуле: s=((a*a)√3)/4 Помогите решить.
C++ Привести пример, в котором реализуется динамический полиморфизм. Привести пример, в котором реализуется динамический полиморфизм. подробнее

Показать сообщение отдельно
nocl1p
37 / 22 / 10
Регистрация: 30.03.2012
Сообщений: 299
17.06.2014, 20:55     Перегрузка оператора +
Вот заголовочный файл

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
// Заголовочный файл Vector.h
#ifndef VECTOR_H
#define VECTOR_H
 
#include <iostream>
using namespace std;
 
template<typename T>
class Vector
{
public:
//======================================================================================================
    // Конструктор класса, который инициализирует трехмерный вектор
    Vector(T x, T y, T z) 
    {
        const int ArraySize = 3;     
        Array = new T[ArraySize];
 
        Array[0] = x; 
        Array[1] = y;
        Array[2] = z;
 
        
        XCoord = x;
        YCoord = y;
        ZCoord = z;
    }
//======================================================================================================
    ~Vector()
    {
        delete [] Array;
    }
//======================================================================================================
    // Метод класса, который находит длину вектора
    T GetLength()
    {
        return sqrt(GetVectorXCoordinate() * GetVectorXCoordinate() 
            + GetVectorYCoordinate() * GetVectorYCoordinate() 
            + GetVectorZCoordinate() * GetVectorZCoordinate());
    }
//======================================================================================================
    // Метод класса, который делает вектор единичной длины
    void Normalize()
    {
        T NormX = GetVectorXCoordinate() / GetLength();
        T NormY = GetVectorYCoordinate() / GetLength();
        T NormZ = GetVectorZCoordinate() / GetLength();
 
        XCoord = NormX;
        YCoord = NormY;
        ZCoord = NormZ;
    }
//======================================================================================================    
    T operator+(const Vector<T> vect1, const Vector<T> vect2)
    {
        Vector<T> vect(0, 0, 0);
        T AddX = vect1.GetVectorXCoordinate() + vect2.GetVectorXCoordinate();
        T AddY = vect1.GetVectorYCoordinate() + vect2.GetVectorYCoordinate();
        T AddZ = vect1.GetVectorZCoordinate() + vect2.GetVectorZCoordinate();
 
        return vect(AddX, AddY, AddZ);
    }
//======================================================================================================
private:
    T* Array; 
    T XCoord, YCoord, ZCoord; 
//======================================================================================================
    // Возвращает Х-координату текущего вектора
    T GetVectorXCoordinate()
    {
        return XCoord;
    }
//======================================================================================================
    // Возвращает Y-координату текущего вектора
    T GetVectorYCoordinate()
    {
        return YCoord;
    }
//======================================================================================================
    // Возвращает Z-координату текущего вектора
    T GetVectorZCoordinate()
    {
        return ZCoord;
    }
//======================================================================================================
};
 
#endif
Вот MAIN

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
#include "Vector.h"
using namespace std;
int main()
{
    Vector<double> vect(45, 2, 9), vect1(5, 98, 3), vect2(4, 52, 10);
    std::cout << vect.GetLength() << " " << vect1.GetLength() << " " << vect2.GetLength() << endl << endl;
 
    vect.Normalize();
    vect1.Normalize();
    vect2.Normalize();
 
    std::cout << vect.GetLength() << " " << vect1.GetLength() << " " << vect2.GetLength();
    _getch();
    return 0;
}
Что не так в перегруженном операторе +?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru