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

Тема в разделе "C/C++/C#", создана пользователем 123er4, 13 июн 2010.

  1. 123er4

    123er4 Гость

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

    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;
    }
     
  2. 123er4

    123er4 Гость

    закрыть тему
     
Загрузка...

Поделиться этой страницей