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

Перегрузка стандартных операций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Операции с матрицами (+,-,*,/,det) http://www.cyberforum.ru/cpp-beginners/thread1197293.html
Помогите разобраться с программой: #include <iostream> #include <stdlib.h> #include<math.h> using namespace std; class Matrix { public:
C++ Разделение проекта на файлы .cpp где полностью описывается один класс Всем привет! Бьюсь над задачей: есть несколько классов, куча объявленных констант через #define и отдельные функции. Захотел все это раскидать по разным .cpp файлам. План такой: Два хедерных файла, один со всеми библиотеками и инклудами, второй с константами #define. Отдельные файлы .cpp для функции main, отдельных функций и для каждого класса. Прочитал про такую штуку как: #ifndef... http://www.cyberforum.ru/cpp-beginners/thread1197284.html
C++ Функция для рисования окружности
Есть функция для рисования триугольника , а как нарисовать коло ? void Triangle::Plump() { MoveToEx(dc, x, y, NULL); LineTo(dc, x1, y1); MoveToEx(dc, x1, y1, NULL); LineTo(dc, x2, y2);
C++ Отсортировать элементы заполненного пользователем массива по возрастанию и по убыванию
Здравствуйте.помогите составить код программы в котором даётся массив размерность которого задаётся пользователем, далее пользователь заполняет массив. программа должна сортировать элементы по возрастанию и по убыванию.. спасибо
C++ Не меняется значение переменной http://www.cyberforum.ru/cpp-beginners/thread1197263.html
class A { private: int price; string name; static int all_money; public: A(int price=0, string name=""); void initA(int price, string name=""); void showA();
C++ Повторение всей программы заного через да\нет Хочу сделать повтор программы через да\нет. Но в итоге выдает бесконечный вопрос об повторе. немного сократил сам код (убрал пару других подпрограмм). #include "stdafx.h" #include "stdio.h" #include "math.h" #include "locale.h" #include "iostream" подробнее

Показать сообщение отдельно
comcor2013
0 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 138

Перегрузка стандартных операций - C++

03.06.2014, 02:09. Просмотров 221. Ответов 5
Метки (Все метки)

Необходимо сложить два вектора. В чем у меня ошибка?

Кликните здесь для просмотра всего текста
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
#include <conio.h>
#include <locale.h>
#define pr print();
#define sl  setlocale(LC_ALL, "rus");
 
class Vector
{
    double *p;
    int n;
public:
    Vector()
    {
        p = 0;
        n = 0;
    }
 
    Vector(double *p, int n)
    {
        this->n = n;
        this->p = new double[n];
        for (int i = 0; i<n; i++)
            this->p[i] = p[i];
    }
 
     const double & operator[] (int index) const
    {
        return p[index];
    }
 
    Vector & operator =(Vector& v2) // Оператор-функция копирования объекта 
    {
        n = v2.n;
        p = new double[n];
        for (int i = 0; i<n; i++) p[i] = v2.p[i];
        return *this;
    }
 
    void print() // Печать вектора (массива)
    {
        printf("\n");
        for (int i = 0; i<n; i++)
            printf(" %.2lf ", p[i]);
    }
 
    ~Vector() // Деструктор
    {
        if (n>0) delete[] p; // Освобождаем память
    }
 
    friend double *operator +(Vector& V1,   double *v2); // Дружественная функция, определенная вне класса. функция результата
};
 
double *operator +(Vector& V1, Vector *v2) 
{ 
    double *p = new double[V1.n];
    for (int i = 0; i<V1.n; i++)
        p[i] = V1.p[i] + v2[i]; 
    return p; 
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    //sl;   echo; //см. #define
    double w1[] = { 1.2, 2.2, 3.6, 4.5, 7 };
    Vector V1(w1, 5); // Создаем объект
    double w2[] = { 8, 3.2, 4, 7.4, 13.1 };
    Vector V2(w2, 5);
    printf("\n");
    V1.pr; // Печать объекта
    V2.pr; // Печать объекта
    printf("\n");
    printf("\nПерегрузка операции []\n");
    for (int i = 0; i<5; i++)
        printf(" %.2f ", V1[i]); // Пример обращения к операции []
    double *w3;
    printf("\n\nПерегрузка операции +");
    w3 = V1 + w2; // Пример выполнения перегруженной операции +   ,  =
    //w3=operator +(V1, w2);                // второй способ сложения векторов, через оператор-функцию
    Vector V3(w3, 5);                    
    printf("\nПечать суммированного вектора \n");
    V3.pr; // Печать полученного объекта
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru