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

overload функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка ошибок http://www.cyberforum.ru/cpp-beginners/thread259955.html
while (1) { sh *newelem; newelem=new sh; cout<<"Write number of the car"<<"\n"; s=getch(); if (s=='*') return; cin>>newelem->number; cout<<"Write the size of the fine"<<"\n";
C++ как создать n-мерный массив, заполнив данными из данного файла Здравствуйте, уважаемые Гуру C++. Начал изучать C++, но некоторые вещи, после php, кажутся весьма странными. Например, не могу разобраться со следующей задачей: Имеется файл данных, в котором располагается некий массив данных. Разные строки разделяются переводом строки, а столбцы пробелом. Первый столбец - текстовый (логин), остальные вещественные. Подскажите, как создать n-мерный массив,... http://www.cyberforum.ru/cpp-beginners/thread259947.html
C++ Создание шаблона функции
Пожалуйста помогите решить задачу, что то сам никак не могу сообразить((( вот текст: Описать шаблон функции, которая считает сумму элементов главной диагонали матрицы.
C++ Создание динамических DLL в С++ 5.5
Что бы создать длл сделал батник который запускает bcc32.exe. Но не могу разобраться какую команду нужно прописать чтобы скомпилировать длл, вот какой bat я сделал: rem Файл make_gui.bat rem компиляция и компоновка GUI-приложений rem в Borland Builder C++ 5.5 rem объявление переменных path C:\Borland\BCC55\bin;%path% set include=C:\Borland\BCC55\include set lib=C:\Borland\BCC55\lib rem...
C++ Массив(запутался) http://www.cyberforum.ru/cpp-beginners/thread259940.html
Знаю правила, прошу помощи. " Пример массива и дополнительных переменных приведены ниже: { 1.2, -1.8, -4.5, 8.5, -0.1, -0.9, 9.7, -9.8, 0.2, 3.5, 5.7, -3.8, -6.0, 4.2, 4.3, -5.1} a=0 b=3 A=3 B=6 C=1 Результаты должны выводиться на экран. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму...
C++ массив в одномерном массиве, состоящем из n вещественных элементов вычислить: 1) номер минимального элемента массива 2) сумму элементов массива,расположенных между первым и вторым отрицательными элементами Помогите пожалуйста с задачей подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
19.03.2011, 00:21
Еще бы... Оператор вывода то не перегружен...

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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
//main.cpp
#include "HugeInt.h"
#include <conio.h>
#include <time.h>
 
int main()
{
        srand(time(NULL));
        HugeInt a(5);
        a.Rindomize(5);
 
        HugeInt b(7);
        b.Rindomize(5);
 
        HugeInt c;
        
        cout<<a;
        
        getch();
        return 0;
}
 
//HugeInt.h
#include <iostream>
#include <stdlib.h>
using namespace std;
class HugeInt
{
        int*ptr;
        int size;
public:
        HugeInt(int s=10);
        HugeInt(HugeInt &arr);
        virtual~HugeInt();
 
        void Rindomize(int num = 10);
        HugeInt &operator-(HugeInt &arr);
        HugeInt &operator= (HugeInt &arr);
        HugeInt &operator-=(HugeInt &arr);
        bool HugeInt::operator> (HugeInt& arr);
        friend std::ostream& operator <<(std::ostream&, const HugeInt&); 
};
 //HugeInt.cpp
#include "HugeInt.h"
 
 HugeInt::HugeInt(int s)
{
        size = s;
        ptr = new int[size];
        for(int i = 0; i < size; i++)
        {
                ptr[i] = 0;
        }
        cout << "Constructor" << endl;
}
//--------------------------------------------------------------------------------
HugeInt::HugeInt(HugeInt& arr)
{ 
        size = arr.size;
        ptr = new int[size];
        for(int i = 0; i < size; i++)
        {
                ptr[i] = arr.ptr[i];
                
        }
        cout << "Copy Constructor" << endl;
}
//--------------------------------------------------------------------------------
HugeInt::~HugeInt()
{
        delete[] ptr;
        cout << "Destructor" << endl;
}
//--------------------------------------------------------------------------------
void HugeInt::Rindomize(int num)
{       
        for(int i = 0; i < size; i++)
        {
                ptr[i] = rand() % num;
        }       
}
//--------------------------------------------------------------------------------
HugeInt& HugeInt::operator-(HugeInt& arr) 
{
        int mins = (size < arr.size) ? size : arr.size;         
        HugeInt temp;
        if(mins == arr.size)
        {
                temp = *this;
                for(int i = 0; i < mins; i++)
                {               
                        temp.ptr[i] -= arr.ptr[i];
                }
        }
        else
        {       
                temp = arr;
                for(int i = 0; i < mins; i++)
                {               
                        temp.ptr[i] -= ptr[i];
                }               
        }
        cout << "Operator -" << endl;
        return temp;
}
//--------------------------------------------------------------------------------
HugeInt&HugeInt::operator= (HugeInt& arr)
{
        if(this != &arr)
        {
                delete[] ptr;
                size = arr.size;
                ptr = new int[size];
                for(int i = 0; i < size; i++)
                {
                        ptr[i] = arr.ptr[i];
                }
        }
        cout << "Operator =" << endl;
        return *this;
}
//--------------------------------------------------------------------------------
HugeInt& HugeInt::operator-= (HugeInt& arr)
{
        HugeInt temp;
        temp = *this - arr;
        *this = temp;
        return *this;
}
//--------------------------------------------------------------------------------
bool HugeInt::operator> (HugeInt& arr)
{
        bool result = false;
        if (this->size > arr.size) {
                result = true;
        } else if (this->size == arr.size) {
                for(int i = 0; i < arr.size; i++)
                {       
                                if (this->ptr[i] > arr.ptr[i]) {
                                        result = true;
                                        break;
                                } else if (this->ptr[i] < arr.ptr[i]){
                                        result = false;
                                        break;
                                } else {
                                        result = false;
                                }
                }
        }else{
                result = false;
        }
        return result;
}
 
std::ostream& operator <<(std::ostream& os, const HugeInt& Arr)
{
    for(int i=0; i<Arr.size; ++i)
        os<<Arr.ptr[i]<<'\n';
    return os; 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru