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

Перегрузка функций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сумма ряда с заданной точностью http://www.cyberforum.ru/cpp-beginners/thread175045.html
Помогите пожалуйста, уже не знаю что и делать, неправильно решает программа... Для х ( -25 < x < 25) составить функцию, которая вычисляет сумму ряда с заданной точностью 0<eps<=1 . Считать, что требуемая точность достигнута, если очередное слагаемое оказалось по модулю меньше чем eps. Функция в качестве результата должна вернуть вычисленную сумму, количество учтенных слагаемых и последнее...
C++ Сумма по главной диагонали Сумма по главной диагонали Рассчитать общую сумму элементов, расположенных под главной диагональю в данном NxN квадратный стол. Вход Первая линия N (1 <= N <= 100). Тогда NxN таблице дается (все числа целые) Выход Общая сумма элементов, расположенных под главным диагоналям http://www.cyberforum.ru/cpp-beginners/thread175027.html
C++ Нулевое положение.
Нулевое положение. В данной матрицы найти положение нуля. Вход Первая линия N и M (1 <= N, M <= 100). Тогда NxM таблице дается (все числа целые) Выход Первый номер должен быть номер строки, а затем номер столбца нулевой своей стихии.
массивы минимум C++
Минимальная в таблице Вы данной таблицы, которые состоят из линий N и M строк. Все номера в таблице, природных и не больше, чем 1000. Ваша задача состоит в нахождении минимума в таблице. Вход: Первая линия containts N (число строк) и M (число строк) (1 <= N <= 100, 1 <= M <= 100) . Вся эта таблица дана.
C++ Решение уравнения с синус и кос итп http://www.cyberforum.ru/cpp-beginners/thread175021.html
Y=((arctd(b-a)^2/3)^d+sin(c+d^2))/((e^c-a)^1/2+7,0597*10^(-3)) + (ln^2(a+b)/sin(a-c)+Пи) ребят помоги кто чем может, 1 семестр программирования надо пережить, не дайте умереть плз)
 

Показать сообщение отдельно
LineStown
 Аватар для LineStown
63 / 63 / 3
Регистрация: 04.08.2010
Сообщений: 399
11.10.2010, 17:10     Перегрузка функций
Описание так: Subd Subd::operator +(Subd &)
или так : Subd Subd::operator +(Subd& w)?

Добавлено через 1 минуту
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
#include <string.h>
#include <iostream>
 
using namespace std;
 
class Subd{
        private:
                char* name;
                int kol;
                unsigned int god;
                float ryn;
        public:
                Subd(char* name=NULL,int kol=0,unsigned int god=0,float ryn=0);
                Subd (Subd&);
                void showSubd();
                ~Subd(){
                        if (name)
                        delete [] name;
                };
                Subd Subd::operator + (Subd& w);
                int operator == (Subd&);
                Subd& operator =(Subd&);
                friend int operator + (Subd&, Subd&);
};
 
Subd::Subd(char* emp_name,int emp_kol,unsigned int emp_god,float emp_ryn){
        if (emp_name){
                name = new char [strlen(emp_name)+1];
                strcpy(name,emp_name);
        }
        else{
                name = NULL;
        }
        kol=emp_kol; god=emp_god; ryn=emp_ryn;
}
 
Subd::Subd(Subd& w){
        if (w.name){
                name = new char [strlen(w.name)+1];
                strcpy(name,w.name);
        }
        else name = NULL;
 
        kol=w.kol;
        god=w.god;
        ryn=w.ryn;
}
 
void Subd::showSubd(){
        cout << "Название фирмы:                        " << name << endl; 
        cout << "Количество продуктов:          " << kol<< endl; 
        cout << "Годовой объем продажи ($):     " << god << endl;
        cout << "Часть рынка (%):               " << ryn << endl;
}
 
int Subd::operator == (Subd& w){
                if ((strcmp(name,w.name) != 0)||
                        (kol != w.kol)||
                        (god != w.god)||
                        (ceil(ryn) != ceil(w.ryn)))
                        return 0; //ложь
                else
                        return 1; //истина
}
 
Subd& Subd::operator=(Subd& w){
        if (&w == this) return *this;
        if (name) delete [] name;
        if (w.name){
                name = new char [strlen(w.name)+1];
                strcpy(name,w.name);
        }
        else name = NULL;
 
        kol=w.kol;
        god=w.god;
        ryn=w.ryn;
        return *this;
}
Subd Subd::operator + (Subd& w){
        strcat(name, w.name);
        kol = + w.kol;
        god = + w.god;
        ryn = + w.ryn;
        return Subd(name,kol,god,ryn);
}
int main(){
        setlocale(LC_ALL,"Russian");
        cout << "Фирмы - производители СУБД"<<endl;
        cout<<endl;
        Subd w("Oracle",1,2488000000,31.1);
        w.showSubd();
        cout<<endl<<endl;
        Subd w1("IBM",3,2392000000,29.9);
        w1.showSubd();
        cout<<endl<<endl;
        Subd w2("Microsoft",2,1048000000,13.1);
        w2.showSubd();
        cout<<endl;
        if (w == w1) cout<<"Фирмы Oracle и IBM работают одинакого.";
        else cout<<"Фирмы Oracle и  IBM       работают по разному."<<endl;
        if (w == w2) cout<<"Фирмы Oracle и Microsoft работают одинакого.";
        else cout<<"Фирмы Oracle и  Microsoft работают по разному."<<endl;
        if (w1 == w2) cout<<"Фирмы IBM и Microsoft работают одинакого.";
        else cout<<"Фирмы IBM    и  Microsoft работают по разному."<<endl;
        cout<<endl;
        Subd w3;
        w3=w2;
        w3.showSubd();
}
Полная компилирующаяся задача

Добавлено через 21 секунду
Только const не добавлял
 
Текущее время: 11:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru