Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ 5 СПОСОБОВ задержки времени: Что скажете? https://www.cyberforum.ru/ cpp/ thread75979.html
В Linux работают 100%, в Windows не проверял, но тоже должны работать. 1. используя nanosleep: #include <iostream> using namespace std;
C++ Нюансы динамической памяти
вобщем у меня очень непонятная трабла. есть двумерный массив из объектов класса NET. в классе NET есть небольшой массив указателей на объекты класса Object. массив NET инициализируется так: NET** Object::net=new NET* ; for (int i=0;i<Object::NET_n;i++) { Object::net=new NET; for (int j=0;j<100;j++) Object::net=NET (i-500,j); } конструкторы NET:
C++ надо решить лабу по праграммированию https://www.cyberforum.ru/ cpp/ thread75957.html
Описать структуру с именем ZNAK содержащую следующие поля: • Фамилия, имя; • Знак Зодиака; • Дата рождения (массив из трёх чисел).
C++ Дерево каталогов помогите разработать программу , которая выводит дерево каталогов (с нужным количеством отступов, в зависимости от уровня вложенности каталога) начиная с указанного в качестве параметра каталога. Если программе указан параметр -f (--file), программа должна выводить не только имена каталогов, но и имена файлов, которые в каталогах присутствуют. Программа по умолчанию показывает только ... https://www.cyberforum.ru/ cpp/ thread75870.html
C++ помогите пожалуйста, очень СРОЧНО
1. Дана последовательность из 100 целых чисел. Определить количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей. 2. Дано число. Разделить каждую цифру числа на его порядковый номер. Полученное число напечатать. 3. В одномерном массиве, состоящем из n вещественных элементов, вычислить: • количество элементов массива равных нулю; • сумму элементов,...
C++ Защищенный режим DOS - С++ https://www.cyberforum.ru/ cpp/ thread75211.html
Нужна помощь!!! Надо написать программу на С++ для защищенного режима DOS. В проге надо записать данные в переменную до 100 мб а потом записать эти данные в файл. В программировании под DOS да еще в защищенном режиме я полный чайник... Поэтому просьба подскажите что можно почитать или помогите с исходником для этой задачи!!! :help:
C++ Захват звука Надо захватить звук в буфер для анализа. Ёмкость буфера искуственно ограничить и хранить в нём только последние n секунд. При поступлении кажого нового данного с микрофона самое старое выбрасывать. https://www.cyberforum.ru/ cpp/ thread75166.html C++ Метод Фибоначчи
Помогите решить... Методы оптимизации – методы поиска локального экстремума функции на заданном промежутке. Задание на лабораторную работу: 1. Найти локальный экстремум функции в указанном интервале с заданной точностью. 2. Повторяющиеся вычисления оформить в виде функции. 3. Результат решения задачи: найденный экстремум, заданная точность, число потребовавшихся для нахождения...
C++ Обучение нейросетей в С++ https://www.cyberforum.ru/ cpp/ thread74509.html
Обучаю 2 слойную нейронную сеть методом обратного распространения ошибки - на вход подается массив сигналов, на выходе получаю массив, все элементы которого равны нулю. В чем проблема? static const unsigned int n=3969; double* Wst1; double* Wst2; Wst1 = new double; Wst2 = new double; double Mst1; double Mst2;
C++ Huffman https://www.cyberforum.ru/ cpp/ thread74479.html
Я почти всё сделал...строится бин. дерево... Остался вывод в файл! Как из совокупности нулей и единиц вывести инфу в файл???
C++ Устал от утечек памяти
С этими утечками памяти в C++ просто беда. Посоветуйте, что можно сделать? Может быть есть какие-то специальные утилиты?
C++ требуется Решить лабораторную https://www.cyberforum.ru/ cpp/ thread73571.html
2 лабораторная и уже несправляюсь((( Дана матрица MxN найти все ее периметры Если не сложно расписать каждый шаг (чтоб сам понять мог) и киньте ссылку на самый эффективный учебник по с++ для изучения с нуля
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
18.12.2009, 14:06 0

Надо переделать метод класса. - C++ - Ответ 423864

18.12.2009, 14:06. Показов 915. Ответов 6
Метки (Все метки)

Ответ

вот тебе почти полноценное описание класса действительных чисел, даже поераторы << перегружены. сделай свой класс по образу и подобию.
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
//создание класса INT - класса натуральных чисел.
#include <iostream>
#include <conio.h>
using namespace std;
 
class INT {
      private:
              int i;
      public:
             INT(){i=0;cout <<"use INT()\n";}
             INT(int ii){i=ii;cout <<"use INT(int)\n";}
             // если в следующий оператор передавать аргумент по ссылка, то обычное число туда не войдет :), типа (int &ii)
             INT &operator=(const int ii){i=ii;cout <<"use INT=(const int)\n"; return *this; } //aa@bb aa.operator@(bb);
             INT &operator=(const INT &I){if (this!=&I)this->i=I.i;cout <<"use INT=(const INT)\n";}
             //аксессор, оне не нужен, ибо функйци которые могли бы в нем нуждаться обявлены дружественными классу INT.
             //int get()const{return i;}
             
             //без этого оператора, в a=c+3 использовался бы не он, а тот что ниже него.
             INT &operator+(int ii){INT*p=new INT(ii+i); cout <<"use INT+(int)\n";return *p;}
             //создание обектов в динамической памяти - очень важно. Так мы не портим сами обьекты из которых вызывались операторы.
             // что бы не испортить A: INT A(x); INT B(y); INT C; C=A+B; вернем в C ссылку на обект в динамической памяти.
             INT &operator+(INT &I){INT*p=new INT(i+I.i);cout <<"use INT+(INT)\n";return *p;}
             
             //префиксный инкремент, aa.operator++();, без входного аргумента все операторы префиксные по умолчанию.
             INT &operator++(){i+=1;cout <<"use INT++()\n";return *this;}
             //постфиксный инкремент, aa.operator++(bb); оба оператора возвращают себя, иначе невозможно j=i++.
             INT &operator++(int ii){i+=1;cout <<"use INT++(int)\n";return *this;}
             
             INT &operator*(int ii){INT*p=new INT(i*ii); cout <<"use INT*(int)\n"; return *p;}
             INT &operator*(INT &I){INT*p=new INT(i*I.i);cout <<"use INT*(INT)\n"; return *p;}
             
             INT &operator-(int ii){INT*p=new INT(ii-i);cout <<"use INT-(int)\n";return *p;}
             INT &operator-(INT &I){INT*p=new INT(i-I.i);cout <<"use INT-(INT)\n";return *p;}
             
             INT &operator--(){i-=1;cout <<"use INT--()\n";return *this;}
             INT &operator--(int ii){i-=1;cout <<"use INT--(int)\n";return *this;}
             
             INT &operator/(int ii){INT*p=new INT(i/=ii); cout <<"use INT/(int)\n"; return *p;}
             INT &operator/(INT &I){INT*p=new INT(i/=I.i); cout <<"use INT/(int)\n"; return *p;}
             
             operator int(){cout <<"use int()\n";return i;}
             
             //унарынй префексный * возвращает ссылку как и положено.
             INT * operator*(){cout <<"use INT* *()\n";return this;}
             
             //унарные минус
             INT &operator-(){INT*p=new INT(-i); cout <<"use INT-()\n";return *p;}
             
             friend int operator+(int i, INT &I);
             friend int operator*(int i,INT &I);
             friend int operator-(int i, INT &I);
             friend int operator/(int i,INT &I);
             friend istream &operator>>(istream & in,const INT &I);
             friend ostream &operator<<(ostream &out,const INT &I);
};
//этот оператор лучше, потому что универсальние, он полезен при int = int + INT;
int operator+(int i, INT &I)
{
    cout << "nic int+(int,INT)\n";
    return i+I.i;//имеем доступ к закрытым полям, ибо оператор обьявлен дружестыенным к классу INT
}
//а этот оператор только при INT = int + INT
/*
INT operator+(int i, INT &I)
{
    cout << "nic INT=(int,INT)\n";
    return INT(i+I.get());
}*/
int operator*(int i,INT &I)
{
    cout << "nic int*(int,INT)\n";
    return i*I.i;
}
 
int operator-(int i, INT &I)
{
    cout << "nic int-(int,INT)\n";
    return i-I.i;
}
 
int operator/(int i,INT &I)
{
    cout << "nic int/(int,INT)\n";
    return (int)i/I.i;
}
istream &operator>>(istream & in,const INT &I)
{
        in >> I.i;
        return in;
}
ostream &operator<<(ostream &out,const INT &I)
{
        out << I.i;
        return out;
}
 
//эту функцию лекго можно использовать для вычисления обьектов INT, благодая перегруженным int() и оператору присваивания INT=int.
//непосредственно в рекурсии будет участвровать только int числа.
int fuc(int i)
{
    if(i)return i*fuc(i-1);
    else return 1;
}
 
//если передавать в pow() аргумент про ссылкие, типа так pow(INT &I), 
//то конструктр не сможет создать временный обьект из числа типа int, pow(4) например не сработает.
INT pow(INT I)
{
    return I*I;
}
 
int main()
{
    //#define int INT // %)
    cout << "1 INT a; ";        INT a;
                                cout <<"a="<< a << endl;
    cout << "2 INT b(6); ";     INT b(6);
                                cout << "b="<<b << endl;
    cout << "3 INT c=b; ";      INT c=b;//здесть используется не перегруженный оператор =, а стандартный.
                                cout << "Standart =\n";
                                cout << "c="<<c << " d=" << b << endl;
    cout << "4 a=c; ";          a=c;
                                cout << "a="<< a <<" c="<< c << "\n";
    cout << "5 INT d=2 ";       INT d=2;
                                cout << "d=" << d << endl;
    cout << "6 a=c+3; ";        a=c+3;
                                cout << "a=c+3, a=" << a << endl;
    cout << "7 b=3+a ";         b=3+a;
                                cout << "b=3+a, b=" << b << endl;
    cout << "8 d=a+b ";         d=a+b;
                                cout << "d=" << d << endl; 
    cout << "9 int i=23; ";     int i=23;
    cout << "10 d+i ";          d+i;
                                cout << "d=" << d << endl;
                                cout << "befor X++, a=" << a << endl;
    cout << "11 a++ ";          a++;
                                cout << "after X++, a=" << a << endl;
 
                                cout << "befor ++X, a=" << a << endl;
    cout << "11 ++a ";          ++a;
                                cout << "after ++X, a=" << a << endl;
 
                                a=3; b=1; c=0; d=-2; i=10;
                                cout << "a=3; b=1; c=0; d=-2; i=10;\n";
                                
    cout << "12 c=a*3+i; ";     c=a*3+i;
                                cout << "a=" << a << " c=" << c << " i=" << i << endl;
                                cout << "for culc (c+b)*i+(d*2) was don: \n";
                                cout << "(c+b)*i-(d*2)=" << (c+b)*i-(d*2) << endl;
    cout << "a=" << a << " b=" << b << " c=" << c << " d=" << d << " i=" << i << endl;
    cout << "13 a=4*d; ";       a=4*d;
                                cout << "a=" << a << endl;
cout << "14 d=(a/b)*(c/3); ";   d=(a/b)*(c/3);
                                cout << "d=" << d << endl;
    cout << "15 i=3/b; ";       i=3/b;
                                cout << "i=" << i <<endl;
    cout << "16 i=8+b; ";       i=8+b;
                                cout << "i=" << i <<endl;
    cout << "17 i=b+1; ";       i=b+1; //очень тонкое место... здесь используется перегруженный int();
                                cout << "i=" << i <<endl;
    cout << "b=1,c=0,c=b++\n";  b=1;
                                c=0;
                                c=b++;
                                cout << "c=" << c << endl;
                                
                                cout<< "d=4;"<< endl;
                                d=5;
                                cout << "fuc cuclc\n";
                                //int fuc(int);
                                cout << "fuc(d)=" << fuc(d) << endl;
    cout << "18 c=fuc(d); ";    c=fuc(d);
                                cout << "c=" << c << endl;
                                
                                INT *IP;
                                const int max=5;
                                INT I[max];
                                for(int i=0;i!=max;i++)I[i]=i;
                                IP=I;
                                for(INT i=0;i!=max;i++)//здесь INT i в роле счетчика!!!! :)
                                {
                                        cout << "*IP ppoint to I[" << i << "]=" << *IP << endl;
                                        IP++;
                                }
    cout << "19 IP=*d; ";       IP=*d; // пример использования унарного *
                                cout << "*IP=" << *IP << endl;
                                
                                INT *IPnum=new INT[max];
                                for(INT i=0;i!=max;i++){IPnum[i]=(i + I[4-i]);}
                                
                                for(int i=0;i!=max;i++)cout << I[i] <<" " << *IPnum[i] <<"->" <<*IPnum++<< endl;
    cout << "sizeof(INT)=" << sizeof(INT) << "  sizeof(int)=" << sizeof(int) << "  sizeof(IP)=" << sizeof(IP)<< endl;
    int im[max];
    cout << "sizeof(I)=" << sizeof(I) << "  sizeof(im)=" << sizeof(im) <<"  sizeof(IPnum)=" << sizeof(IPnum)<< endl;
    delete [] IPnum;
    
                                cout << "c=" << c << endl;
    cout << "20 d=pow(c); ";    d=pow(c);
                                cout << "d=" << d << endl;
                                //INT pow(INT);
    cout << "21 int j=pow(4); ";int j=pow(4);
                                cout << "j=" << j << endl;
                                
                                
    cout << "22 INT AA=5; ";    INT AA=5;
    cout << "23 INT BB=4; ";    INT BB=4;
    cout << "24 INT CC; ";      INT CC;
                                cout << "CC=" << CC <<" AA=" << AA << " BB=" << BB << endl;
                                CC=AA+BB;
                                cout << "CC=" << CC <<" AA=" << AA << " BB=" << BB << endl; 
                                
    cout << "25 AA=BB-CC; ";    AA=BB-CC;
                                cout << "CC=" << CC <<" AA=" << AA << " BB=" << BB << endl;
    cout << "26 CC=-AA; ";      CC=-AA;
                                cout << "CC=" << CC <<" AA=" << AA << endl;
    cout << "27 BB=AA*(-AA); "; BB=CC*(-AA);
                                cout << "CC=" << CC <<" AA=" << AA << " BB=" << BB << endl;
                                CC=AA=BB=0;
                                cout << "CC=" << CC <<" AA=" << AA << " BB=" << BB << endl;
 
    getch();
}
только сотри cout из реализации перегрузки операторов, они там чтобы на кран выводилось какой оператор используется.

Вернуться к обсуждению:
Надо переделать метод класса. C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2009, 14:06
Готовые ответы и решения:

Вызвать из переменной класса-внука метод из класса-деда
Решено. Ответ внизу добавил. _____________________________________________________ Описание...

Как переделать friend-перегрузки ввода/вывода в метод класса?
Доброго времени суток! Есть вопрос: как переделать френдовые перегрузки ввода\вывода в метод...

Как передать в метод класса Menu указатель на метод дочернего класса?
Как передать в метод базового класса указатель на метод дочернего: class Menu() { protected: ...

В C++ метод производного класса всегда переопределяет метод базового класса?
#pragma once #include &lt;iostream&gt; using namespace std; class Fish { public: virtual...

6
18.12.2009, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2009, 14:06
Помогаю со студенческими работами здесь

надо переделать
Надо сделать чтобы массив вводился с клавиатуры скиньте правильный код очень срочно надо буду...

надо переделать
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; class...

надо переделать программу
помогите переделать программу нужно было из это программы: #include &quot;stdafx.h&quot; #include...

Надо переделать программу из С на С++
Я не особо шарю в это, помогите пожалуйста, код рабочий все хорошо, надо его просто переделать под...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru