Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> при передачи по копии прога вылетает 
:(
    Опции темы
yngwie19
Дата 10.10.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Вот собственно  сам код:
Код

#include <iostream>
#include <assert.h>

using namespace std;

class Array
{
    friend ostream& operator<<(ostream&,Array&);
    public:
        Array(int = 10);
        ~Array();
        static int GetarrayCount();
        static int arrayCount;
        int Getarraysize() const;
    private:
        int size;
        int* ptr;
        
};

int Array::arrayCount = 0;

int main()
{
   
cout<<"Кол-во созданных объектов: "<<Array::GetarrayCount()<<endl;
Array integers1(7), integers2;
cout<<"Кол-во созданных объектов: "<<Array::GetarrayCount()<<endl<<endl;

cout<<"Размер масива integers1 равен "<<integers1.Getarraysize()<<endl;
cout<<"Массив после задания начальных значений: "<<integers1<<endl<<endl;

cout<<"Размер массива integers2 равен "<<integers2.Getarraysize()<<endl;
cout<<"Массив после задания начальных значений: "<<integers2<<endl; 

 
 
return 0;
}

Array::Array(int arraysize)
{
    ++arrayCount;
    size = arraysize;
    ptr = new int[size];
    assert(ptr!=0);
    for(int x = 0;x<size;x++)    // Инициализация элементов массива
        ptr[x] = 0;
}
Array::~Array()
{
    arrayCount--;
    delete [] ptr;
}
int Array::GetarrayCount() {return arrayCount;}
int Array::Getarraysize() const {return size;}
ostream& operator<<(ostream& out, Array& arr)
{
    for(int x = 0;x<arr.size;x++)
        out<<arr.ptr[x]<<' ';
    out<<endl;    
        return out; 
}


Вопрос в следующем. в main печатаю массив integers1, размером new =  int[5], все нормально, затем печатаю integers2, размером new int[10], массив печатается и выдается сообщение об ошибке;

PM MAIL   Вверх
vinter
Дата 10.10.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



напиши CopyConstructor у тебя при копирование копируется указатель, анадо копировать значение. В результате у тебя два раза пытается удалить одну и ту же паямть. Первый раз удачно, второй ты сам видел smile


--------------------
Мой блог
PM MAIL WWW   Вверх
yngwie19
Дата 10.10.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



vinter, Я не понял почему при копировании, где тут копирование. 
Напиши пожалуйста пример что ты имеешь в виду.

P.S: кстати если объект передавать по ссылке, то сбоев нетю Почему так?
PM MAIL   Вверх
vinter
Дата 10.10.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(yngwie19 @  10.10.2008,  17:20 Найти цитируемый пост)
P.S: кстати если объект передавать по ссылке, то сбоев нетю Почему так?

все просто, потому что объект не копируется а передается по ссылке

Цитата(yngwie19 @  10.10.2008,  17:20 Найти цитируемый пост)
vinter, Я не понял почему при копировании, где тут копирование. 

Цитата

 при передачи по копии прога вылетает 

ты там сам с собой разберись плиз smile


--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1538 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.