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

Вызов конструктора для this в констукторе копирования - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
Trydorg
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 25
03.09.2011, 09:30     Вызов конструктора для this в констукторе копирования #1
Мое почтение, уважаемые!
Подскажите, пожалуйста, как вызвать конструктор для this в констукторе копирования:
C++
1
2
3
4
5
template<class Data> List<Data>::List(const List& list)
{
    List(); //why do not working for this?
    this->List(); //error C2273: 'function-style cast' : illegal as right side of '->' operator
}
Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
08.09.2011, 12:50     Вызов конструктора для this в констукторе копирования #41
Цитата Сообщение от Trydorg Посмотреть сообщение
LosAngeles, а если вы после вызова деструктора решите начать все сначала с этим объектом?
После вызова деструктора объекта больше нет, он умер. Вы хотите работать с зомби? Если решите "начать все сначала" - создайте новый объект.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2011, 19:16     Вызов конструктора для this в констукторе копирования
Еще ссылки по теме:

C++ Определение конструктора копирования для производного класса
C++ Подскажите реализацию конструктора копирования

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

Или воспользуйтесь поиском по форуму:
Trydorg
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 25
08.09.2011, 19:16  [ТС]     Вызов конструктора для this в констукторе копирования #42
Спасибо за дельные советы и подсказки!

По поводу инициализации в деструкторе. В рамках обучения нам рекомендовали создавать классы с защитой от дурака в том числе. Ибо неизвестно, кто в дальнейшем будет с ними работать и какие методы в какой последовательности пожелает вызывать.
Вызов деструктора, в конце концов, может быть очисткой занимаемой объектом памяти, его обнулением.
Вы считаете нецелесообразным так делать?

LosAngeles, спасибо, исправил.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template<class Data> const List<Data> List<Data>::operator + (const List<Data>& list)
{
    List<Data> temp;
    CopyProcedure(temp, *this);
    CopyProcedure(temp, list);
    return temp;
}
 
template<class Data> List<Data>& List<Data>::operator = (const List& list)
{
    if(this != &list) //проверка на присвоение самому себе
    {
        Deinitialization();
        CopyProcedure(*this, list);
    }
    return *this;
}
Yandex
Объявления
08.09.2011, 19:16     Вызов конструктора для this в констукторе копирования
Ответ Создать тему
Опции темы

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