Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: 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";


}


Так вот собствено вопрос, зачем нужен конструктор копий? Почему я не могу сделать обычную функцию? Не могли бы вы сказать зачем имено он нужен (конструктор копий) на примере (без кода, просто вот пример)...


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: