- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
#include <iostream>
using namespace std;
class Manager
{
private:
int *ar;
int _size;
public:
void CreateArray(int size);
void ResizeArray(int size);
void MakeIntArray(int iter, int number);
int GetIntArray(int iter);
~Manager()
{
delete [] ar;
}
};
void Manager::CreateArray(int size)
{
_size = size;
ar = new int[size];
}
void Manager::ResizeArray(int size)
{
int *nar = new int[size];
for(int i = 0; i < _size; i++)
{
*(nar+i) = *(ar+i);
}
_size = size;
delete [] ar;
*ar = *nar;
}
int Manager::GetIntArray(int iter)
{
return iter < _size ? *(ar+iter) : NULL;
}
void Manager::MakeIntArray(int iter, int number)
{
if(iter < _size)
*(ar+iter) = number;
}
int main()
{
Manager Man;
Man.CreateArray(10);
for(int i = 0; i < 10; i++)
Man.MakeIntArray(i, i);
for(int i = 0; i < 10; i++)
cout << Man.GetIntArray(i) << " ";
Man.ResizeArray(20);
cout << endl;
for(int i = 10; i < 20; i++)
Man.MakeIntArray(i, i);
for(int i = 0; i < 20; i++)
cout << Man.GetIntArray(i) << " ";
return 0;
}
Elvenfighter 13.12.2012 00:43 # +3
> В программировании много всяких стереотипов.
А велосипед так вообще считается священным животным.
// http://lorquotes.ru/view-quote.php?id=5464
LispGovno 13.12.2012 01:00 # +1
absolut 13.12.2012 10:00 # +6
roman-kashitsyn 13.12.2012 10:03 # +6
zadornov.jpg
defecate-plusplus 13.12.2012 10:10 # +10
есть же хорошее русское слово приказчик
absolut 13.12.2012 10:43 # +2
eth0 13.12.2012 19:45 # +4
anonimb84a2f6fd141 14.12.2012 18:16 # +1
русского языка - очередной стереотип.
TarasB 13.12.2012 10:34 # +2
Конструктор с деструктором ладно, дальше перегрузка оператора = и T(cosnt T&) я так и не понял, какой из них я могу не писать (поэтому тупо блокирую = и не объявляю T(T) - так можно?) чтобы было всё корректно обработано. Теперь ещё и T(T&&) добавили...
LispGovno 13.12.2012 11:00 # +6
http://liveworkspace.org/code/3lECwB$1
absolut 13.12.2012 11:05 # +7
//B обязательно по конвенции ТарасаБ.
TarasB 13.12.2012 11:56 # +1
А чё, автоматом вместо T(T) не сгенерируется что надо?
В Аде всё проще было.
absolut 13.12.2012 12:02 # +4
АКМ вместо ТТ?
defecate-plusplus 13.12.2012 12:15 # 0
сколько можно задавать этот вопрос?
если у твоих членов нет хитрожопого поведения при копировании, то конструктор копирования и оператор присваивания не пиши
absolut 13.12.2012 13:16 # +8
гомосятина какая-то
defecate-plusplus 13.12.2012 13:25 # 0
TarasB 13.12.2012 13:36 # 0
defecate-plusplus 13.12.2012 13:44 # 0
если в качестве конструктора копирования тебя устраивает цепочка "конструирование по умолчанию -> выполнение копирования", то сделай уже метод assign и его вызывай и в конструкторе копирования, и в присваивании (видимо, это как раз поведение твоей ады)
TarasB 13.12.2012 15:53 # 0
"сначала скопируй по умолчанию, а потом чуток подправь члены"?
anonimb84a2f6fd141 14.12.2012 18:22 # +4
сначала подумал, что @TarasB как в армии получил инструкции от @Обделаться++ и готов приступить к выполнению.
anonimb84a2f6fd141 14.12.2012 18:25 # +3
roman-kashitsyn 14.12.2012 18:31 # +1
> у твоих членов нет хитрожопого поведения
No Way
LispGovno 14.12.2012 23:21 # 0
4ый конструктор забыл удалить:
или это не обязательно? сам удалится вместе с ?
LispGovno 15.12.2012 00:27 # 0
TarasB 17.12.2012 19:02 # +1
LispGovno 18.12.2012 08:03 # +1
Steve_Brown 13.12.2012 12:57 # +2
АААААААА! Щ_щ