Автор: DEM (09.01.2007 в 23:41)
Вот пример из книги ШИЛДТА:
#include <iostream>
using namespace std;
class aray {
int *p;
int size;
public:
aray (int sz) {
p = new int[sz];
if(!p) exit(1);
size = sz;
cout << "Юзаем обычный конструктор: ";
}
~aray() { delete []p; }
aray(const aray &a);
void put(int i, int j) {
if(i>=0 && i<size) p[i] = j;
}
int get(int i) { return p[i]; }
};
aray::aray(const aray &a) {
int i;
size = a.size;
p = new int[a.size];
if(!p) exit(1);
for(i=0;i<a.size;i++) p[i] = a.p[i];
cout << "Юзаем конструктор копий: ";
}
int main()
{
system("chcp 1251");
aray num(10);
int i;
for(i=0;i<10;i++) num.put(i, i);
for(i=9;i>=0;i--) cout << num.get(i);
cout << "\n";
aray x = num;
for(i=0;i<10;i++) cout << x.get(i);
cout << "\n";
}
|
Так вот собствено вопрос, зачем нужен конструктор копий? Почему я не могу сделать обычную функцию? Не могли бы вы сказать зачем имено он нужен (конструктор копий) на примере (без кода, просто вот пример)...