Форум программистов, компьютерный форум CyberForum.ru

Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса? - C++

Восстановить пароль Регистрация
 
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
14.04.2011, 19:48     Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса? #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class A
{
char * v;
A();
~A();
A(const A &obj);
}
/////////////////////
A::A()
 {  
v = new char [20];
}
A::~A()
{ delete[]v;
}
 
A::A(const A &obj)
{
v=NULL
v = new char [20];
strcpy(v,obj.v)
}
//////////////////////////////
int main(....)
{
A first;
A second = first;
A third;
third = first;
}

будет ли утрачена память когда конструктор копирования вызываетса для уже сущестуещего обьекта ккласса?(third = first
как мне узнать был ли рание создан обьект в который я буду копировать в другой обьект ,или же он создаетса сразу когда мы в него копируем?(A second = first
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 19:48     Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса?
Посмотрите здесь:

Сколько раз вызывается конструктор копирования C++
C++ Почему не вызывается конструктор копирования?
Конструктор копирования для класса с указателем на абстрактный класс C++
Когда вызывается конструктор копирования? C++
C++ В каких случаях вызывается конструктор копирования, и стоит ли вообще об этом думать?
C++ Cделать конструктор по умолчанию и копирования для класса
В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение памяти? C++
C++ Почему не вызывается конструктор копирования при возврате объекта из функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 19:57     Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса? #2
В строке 29 вызывается не конструктор копирования, а operator=. Его нужно реализовывать отдельно.
Особо умный компилятор может "догадаться" и использовать копирование.
Всегда, когда создаётся свой конструктор копирования, необходимо реализовывать и operator=.
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
14.04.2011, 20:11  [ТС]     Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса? #3
у сеня в подобных случаях вызываетса именно конструктор копирования (MVS 2008),
а как насчёт второго вопроса?

Добавлено через 2 минуты
хотя впринциае я понял, мжно просто сделать проверку на указатель была ли ему присвоена какаято память до этого и всё....
Yandex
Объявления
14.04.2011, 20:11     Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса?
Ответ Создать тему
Опции темы

Текущее время: 18:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru