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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iving
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 13
#1

Отменить автоматический вызов деструктора - C++

12.12.2012, 23:30. Просмотров 532. Ответов 0
Метки нет (Все метки)

Есть такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template <typename type>
class list
{
public:
    list() { arr=NULL; size=0; }
    list(int i) { arr=new type[i]; size=i; }
    ~list() { delete [] arr; arr=NULL; }
    void incSize(int inc)
    {
        type* tarr=new type[size+inc];
        memcpy(tarr,arr,sizeof(type)*size);
        delete [] arr;
        arr=tarr;
    }
protected:
    type* arr;
    int size;
};
Если я потом пишу:
list<int> a(10);
a.incSize();
То все работает нормально. (Функция incSize дана для примера, как использующая memcpy).
Однако если я захочу использовать эту функцию с переменной list<list<int>>, то начинаются проблемы, так как при уничтожении arr вызывается деструктор и для всех его элементов.
Как решить эту проблему?
желательно не переопределяя operator[] и не используя vector.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 23:30     Отменить автоматический вызов деструктора
Посмотрите здесь:

Автоматический вызов деструктора компилятором - C++
Хэлп, господа! Ситуация такая: имеется объект класса P, в нем парочка указателей на объекты класса С. В конструкторе P вызываются...

Вызов деструктора - C++
Доброго вам времени суток. Проблема в том, что деструктор не выводит сообщение без этой строки. s1.~Shave(); И я не уверен, что так...

Вызов деструктора - C++
Вызывается ли деструктор объекта при завершении программы? а при аварийном завершении? А если снять процесс приложения диспетчером?

Вызов деструктора - C++
Есть написанный мною код: #include &lt;iostream&gt; class Foo { private: int *key; public: Foo (const int a=0) { key = new int...

Вызов деструктора - C++
При ручном вызове деструктора, освобождается ли память*

Повторный вызов деструктора - C++
{ bar b; b.~bar(); } В данном примере деструктор bar вызовется дважды. Как у уже удаленного объекта может вызываться...

Не понятный вызов деструктора - C++
Здравствуйте. Ситуация такая, есть класс MyClass к примеру, и при таком коде: //разные инклюды MyClass var; int WinMain(...) { ...

Двойной вызов деструктора - C++
Здравствуйте, уважаемые. Вот столкнулся с такой проблемой... CharRow - это класс, который содержит указатель на строку... ...

Явный вызов деструктора - C++
Добрый вечер всем! Я раньше читал статью о деструкторах, и там говорилось что можно явно вызвать деструктор. Статью я прочитал и забыл) И...

Явный вызов деструктора - C++
Есть класс Person, с полями string,string,long. Исходные данные хранятся в файле. Нужно сделать вектор объектов этого класса. ...

Вызов деструктора. MSVS и MinGW - C++
Всем доброго дня. Вопрос в следующем. К примеру имеем код: //#include &quot;stdafx.h&quot; //uncomment in ms visual studio ...

Вызов деструктора для копии - C++
вопрос в комментариях #include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; #include &lt;ctime&gt; #include...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru