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

Ошибка перегрузки + в классе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread776931.html
Составить программу вычисляющую
C++ Не считает площадь #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; class Triangle{ protected: int a,b,c; public: Triangle(void); http://www.cyberforum.ru/cpp-beginners/thread776928.html
C++ Найти площадь треугольника и радиусы вписанной и описанной окружностей
Дана сторона равностороннего треугольника. Найти площадь этого треугольника и радиусы вписанной и описанной окружностей.
Вычислить значение выражения C++
Помогите пожалуйста
C++ Функция для определения прямоугольников по 4 точкам http://www.cyberforum.ru/cpp-beginners/thread776899.html
Написать функцию для нахождения прямоугольников зная их вершины (прямоугольники расположены случайно - НЕ параллельно осям х, у) Точки даны в массиве, например, 0 0 0 3 3 0 3 3 for (ii=0; ii<M ;ii++ ) {
C++ Решение задачи о ранец У меня курсовой на тему : Решение задачи о ранец, нужна программа на С++. Возможно кто знает где можно скачать? Либо кто бы мог помочь в решение. Заранее Спасибо подробнее

Показать сообщение отдельно
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
01.02.2013, 19:33  [ТС]     Ошибка перегрузки + в классе
да конечно
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
template <class T>
array<T>::array(){
    ptr = NULL;
    size = 0;
}
template <class T>
array<T>::array(size_t size){
    ptr = new T[size] = {0};
    this->size = size;
}
template <class T>
array<T>::array(const array<T>& A){
    this->size = A.size;
    ptr = new T[size];
    if(!ptr)
        cout<<"Error memory!!!\n";
    else 
        for(size_t i = 0; i < size; i++)
            this->ptr[i] = A.ptr[i];    
}
template <class T>
array<T>& array<T>::operator = (const array<T>& A){
    if(this == &A)//проверка на самоприсваивание
        return (*this);
    if(size != 0)
        delete []ptr;
    size = A.size;
    ptr = new T[size];
    for(size_t i = 0; i < size; i++)
        ptr[i] = A.ptr[i];
    return (*this);
}
template <class T>
 T & array<T>::operator [](size_t size){
     T temp = 0;
    if( 0 <= size && size < this->size ) 
        return this->ptr[ size ];
    else{
        cout<<"Vne diapazona!!!"<<endl;
        return temp;
    }
}
 template <class T>
array<T> array<T>::operator +(const array<T>& A){
    array<T> temp;
    size > A.size ? temp.size = size : temp.size = A.size;
    temp.ptr = new T[size] ;
    for(size_t i = 0; i < temp.size; i++){
        if( (i < this->size) && (i< A.size))//проверяю размерность операндов
            temp.ptr[i] = this->ptr[i] + A.ptr[i];
        else if ( i >= this -> size)//если массив короче просто добавляю элементы массиа А
            temp.ptr[i] = A.ptr[i];
        else
            temp.ptr[i] = this->ptr[i];//если А короче дописываю своими элементами
    }
    return temp;
}
 template <class T>
array<T> array<T>::operator -(const array<T>& A){
    array<T> temp;
    size > A.size ? temp.size = size : temp.size = A.size;
    temp.ptr = new T[size] ;
    for(size_t i = 0; i < temp.size; i++){
        if( (i < this->size) && (i< A.size))//проверяю размерность операндов
            temp.ptr[i] = this->ptr[i] - A.ptr[i];
        else if ( i >= this -> size)//если массив короче просто добавляю элементы массиа А
            temp.ptr[i] = A.ptr[i];
        else
            temp.ptr[i] = this->ptr[i];//если А короче дописываю своими элементами
    }
    return temp;
}
template <class T>
bool array<T>::chekSize( size_t size){
    this->size < size? return false: return true;
}
 
template <class T>
bool array<T>::empty(void){
    if(size == 0)
        return true;
    else 
        return false;
}
template <class T>
void array<T>::pushEnd(const T& volue){
    if(ptr == NULL){
        ptr = new T[size+1];
        ptr[size] = volue;
    }
    else{
        T *temp = new T[size+1];
        for(size_t i = 0; i<size; i++)
            temp[i] = ptr[i];
        temp[size] = volue;
        delete []ptr;
        ptr = temp;
    }
    size++;
}
template <class T>
void array<T>:: EraseEnd(void){
    if(empty())
        cout<<"Array is empty\n";
    else{
        size--;
        T *temp = new T[size];
        for(size_t i = 0; i<size; i++)
            temp[i] = ptr[i];
        delete []ptr;
        ptr = temp;
    }
}
template <class T>
void array<T>::show(void){
    cout<<"Show:\n";
    for(size_t i = 0; i<size; i++)
            cout<<ptr[i]<<" ";
    cout<<endl;
}
template <class T>
array<T>::~array(void){
    delete []ptr;
}
Добавлено через 3 минуты
Цитата Сообщение от Jupiter Посмотреть сообщение
temp.size = size > A.size ? size : A.size;
не помогло
 
Текущее время: 17:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru