Конструктор копирования.

  • Автор темы 123er4
  • Дата начала
1

123er4

Гость
#1
Нужно для задачи дописать конструктор копирования. Вся задача в условии почти решена. Собственно вот условие и как она должна выглядеть:

http://s49.radikal.ru/i124/1006/66/038c80bef977.jpg

Я вроде все сделал, но хз правильно или нет. И почему-то у меня в консоле числа выводятся от 1 до 9 по порядку, а в условии от 1 до 27 и через 3. Помогите плз!

C++:
# include <iostream>
using namespace std;
class CMyArray
{
private:
int*arr;
int size;

public:
CMyArray(int);
~CMyArray(void);
/////Конструктор копирования
CMyArray(const CMyArray &); 

public:
int getElement(int);
int getSize();
private:
void setDefaultParam(void);
};
class ArrayIndexError
{
};
CMyArray::CMyArray(int size)
{
this->size=size;
this->arr=new int[this->size];
setDefaultParam();
}


////Описание конструктора копирования
CMyArray::CMyArray(const CMyArray&ob)
{
this->size=ob.size;
this->arr=new int[this->size];
setDefaultParam();
}
CMyArray::~CMyArray(void)
{
delete this->arr;
}
int CMyArray::getElement(int index)
{
if((index>=0)&&(index<size))
return arr[index];
else throw (ArrayIndexError());
}
int CMyArray::getSize ()
{
return size;
}
void CMyArray::setDefaultParam (void)
{
for(int i=0;i<size;i++)
{
arr[i]=i;
}
}
int main()
{
CMyArray ar(10);
CMyArray ar2=ar;
for (int i=0;i<ar.getSize();i++)
cout<<ar.getElement(i)<< " ";
cout<<endl;
return 0;
}