Все вопросы: [destructor]

83 вопросов

1
голосов
4ответов
1860 просмотров

C++ GCC 4.3.2 error on vector of char-array

It is similar in problem to this bug Question about storing array in a std::vector in C++ but for a different reason (see below). For the following sample program in C++: #include <vector> int main(int c_, char ** v_) { const int LENGTH = 100; std::vector<char[LENG...

2
голосов
7ответов
297 просмотров

Unusual destructor behaviour when copying over stack variables

I wrote a test to check whether destructors were called before an overwriting assignment on a stack variable, and I can't find any rational explanation for the results... This is my test (in Visual C++ 2008 Release mode): #include <iostream> class C { public: char* ptr; C(char p) { ptr ...

3
голосов
3ответов
2927 просмотров

C++ - when are non-pointers class member destroyed?

Suppose I have this code... class GraphFactory : public QObject { private: QMap<QString, IGraphCreator*> factory_; public: virtual ~GraphFactory(); }; GraphFactory::~GraphFactory() { // Free up the graph creators QMap<QString, IGraphCreator*>::iterator itr; for ...

1
голосов
1ответов
878 просмотров

Qt library destructor Question

Im new to the Qt library and i was going through the demonstrations. I came across this class without a destructor.... this is the cpp file http://doc.trolltech.com/4.5/demos-mainwindow-mainwindow-cpp.html and here is the .h file http://doc.trolltech.com/4.5/demos-mainwindow-mainwindow-h.html ...

3
голосов
1ответов
1401 просмотров

Does PHP5 call __destruct() if you use a redirect?

I found that PHP5 isn't calling a __destruct() function if I have the following setup: class test { __destruct() { echo 'hehe'; exit; } } header('Location: http://test.com/'); exit; It never calls the destruct function

11
голосов
5ответов
12928 просмотров

destructors in Qt4

I'm very confused about using destructors in Qt4 and hope, you guys can help me. When I have a method like this (with "Des" is a class): void Widget::create() { Des *test = new Des; test->show(); } how can I make sure that this widget is going to be deleted after it was closed? And...

4
голосов
4ответов
6374 просмотров

Clearing controls from FlowLayoutPanel not calling destructors?

Sorry if I'm missing something obvious, but I'm trying to clear the controls (a series of user controls) from a FlowLayoutPanel - (panelName).Controls.Clear();. Unfortunately this doesn't seem to be calling the destructors for the objects on the panel - the User Objects column in the task manager...

2
голосов
6ответов
466 просмотров

What is the mechanism through which destructors are called for stack-assigned objects?

How does C++ ensure that destructors are called for stack assigned objects? What happens to the destructor function (or a pointer to it) when I assign dynamic memory as follows: class MyClass { public: ~MyClass() { std::cout<<"Destructor called."<<std::endl; } MyClass...

2
голосов
3ответов
6359 просмотров

Error: Do not override object.Finalize. Instead, provide a destructor

Getting the above error in following code. How to rectify it. Thanks. Please look for protected override void Finalize() { Dispose(false); } in the below code. using Microsoft.Win32; using System.Runtime.InteropServices; public class Kiosk : IDisposable { #region "IDisposable"...

2
голосов
5ответов
1093 просмотров

PHP __Constructor & __Destructor Questions

I've been trying to learn the object oriented side of PHP, and was wondering: If I used a _constructor to open a connection to a database, used a function within that class (eg. insert), would the defined __destructor close the connection after the method "insert" is executed? class data(){ f...

6
голосов
5ответов
3894 просмотров

When is my destructor called in this circumstance? (C#)

I was wondering when the destructor is called under these circumstances, and if it is will it be called on the main UI thread? Let's say I have the following code, when would the destructor be called, and would it wait until I have finished all my function calls? private void Foo() { MyObje...

7
голосов
8ответов
2364 просмотров

Is it OK to use "delete this" to delete the current object?

I'm writing a linked list and I want a struct's destructor (a Node struct) to simply delete itself, and not have any side effects. I want my list's destructor to iteratively call the Node destructor on itself (storing the next node temporarily), like this: //my list class has first and last poin...

20
голосов
5ответов
4089 просмотров

Can you guarantee destructor order when objects are declared on a stack?

I have code that controls a mutex lock/unlock based on scope: void PerformLogin() { ScopeLock < Lock > LoginLock( &m_LoginLock ); doLoginCommand(); ScopeLock < SharedMemoryBase > MemoryLock( &m_SharedMemory ); doStoreLogin(); ... } Can I guarantee th...

154
голосов
12ответов
85372 просмотров

Why do we need a pure virtual destructor in C++?

I understand the need for a virtual destructor. But why do we need a pure virtual destructor? In one of the C++ articles, the author has mentioned that we use pure virtual destructor when we want to make a class abstract. But we can make a class abstract by making any of the member functions as...

10
голосов
5ответов
3593 просмотров

Destructor that calls a function that can throw exception in C++

I know that I shouldn't throw exceptions from a destructor. If my destructor calls a function that can throw an exception, is it OK if I catch it in the destructor and don't throw it further? Or can it cause abort anyway and I shouldn't call such functions from a destructor at all?

0
голосов
1ответов
549 просмотров

Finalization Reachable Table

If I implement a destructor in a class, Foo, instances of Foo are tracked closely on the finalization queue. When an instance of Foo is garbage collected, I understand that the CLR sees the entry in the finalization queue and gives that object special treatment by moving the object off the heap a...

56
голосов
7ответов
27240 просмотров

Можно ли автоматически сгенерировать деструктор по умолчанию как виртуальный деструктор?

Можно ли автоматически создать деструктор по умолчанию как виртуальный деструктор? Если я определяю базовый класс, но без деструктора по умолчанию, существует ли виртуальный деструктор по умолчанию создается автоматически?

16
голосов
7ответов
2813 просмотров

удалить указатель NULL не вызывает перегруженное удаление при записи деструктора

class Widget { public: Widget() { cout<<"~Widget()"<<endl; } ~Widget() { cout<<"~Widget()"<<endl; } void* operator new(size_t sz) throw(bad_alloc) { cout<<"operator new"<<endl; th...

2
голосов
1ответов
1086 просмотров

Как правильно разрушить семантические значения токена (записи символов) и избежать утечек памяти с помощью GNU Bison?

Я пишу упрощенный синтаксический анализатор / интерпретатор Паскаля и теперь думаю об ошибках сегментации. Я их пока не получаю, все работает нормально, но, поскольку я разрабатываю под Cygwin, я не могу протестировать программу через valgrind. В основном то, что я делаю, описано ниже: typ...

0
голосов
1ответов
135 просмотров

Каков порядок уничтожения View / Doc / Frame в CMultiDocTemplate?

Я работаю в приложении MDI, которое имеет указатель на объект фрейма документа. Другие потоки вызывают PostMessage с помощью указателя. Во время выключения потоки продолжают пытаться отправлять сообщения в фрейм, пока фрейм разрушается. Кто-нибудь знает порядок уничтожения нескольких документов ...

16
голосов
2ответов
11777 просмотров

Правильный способ уничтожения объекта TThread

Этот вопрос может показаться тривиальным, но я надеюсь, что вы не проигнорируете его. Перед уничтожением объекта TThread обычно необходимо дождаться завершения потока, вызвавшего метод TThread.Execute (), поскольку только тогда мы можем быть уверены, что, например, к объектам, уничтоженным внут...

6
голосов
12ответов
1488 просмотров

Как мне * не * удалить член в деструкторе?

Я бы хотел, чтобы деструктор моего класса удалил весь объект, кроме одного из членов, который удален в другом месте. Во-первых, разве это совершенно неразумно? Если это не так, как мне это сделать? Я думал, что создание деструктора с пустым телом предотвратит удаление всех членов (потому что дес...

4
голосов
2ответов
1633 просмотров

удаленное взаимодействие и деструкторы в c #

Я играю с функциями удаленного взаимодействия .net, и есть кое-что, что я не могу ни понять, ни найти ответ в Google, а именно то, как работает удаление объектов. Я пытаюсь реализовать какой-то пул объектов с удаленным взаимодействием, для этого у меня есть список статических объектов, которы...

1
голосов
7ответов
274 просмотров

проблема деструктора

это моя функция addCard, которая принимает в качестве параметра playCard, а затем передает свой адрес выделенному массиву указателей на объекты playCard. void cardHand::addCard(playingCard card) { theHand[nElems++] = &card; } // addCard() теперь, когда я запускаю свою программу, о...

3
голосов
2ответов
371 просмотров

Как указать метод в качестве деструктора, а не конструктора в C ++?

Как в C ++ указать метод как деструктор, а не конструктор? Это меня очень смущает. Я не могу сказать разницы между ними.

97
голосов
3ответов
65562 просмотров

В C # в чем разница между деструктором и методом Finalize в классе?

В чем разница, если она есть, между деструктором и методом Finalize в классе? Недавно я обнаружил, что Visual Studio 2008 считает деструктор синонимом метода Finalize, а это означает, что Visual Studio не позволяет одновременно определять оба метода в классе. Например, следующий фрагмент к...

14
голосов
11ответов
13723 просмотров

При вызове деструктора объект полностью уничтожается?

Если я вызываю деструктор явно (myObject. ~ Object ()), это гарантирует мне, что объект будет надлежащим образом уничтожен (вызывая все дочерние деструкторы)? Окей, код: class Object { virtual ~Object() {} }; class Widget : public Object { virtual ~Widget() {} }; ... Object* ...

73
голосов
7ответов
30504 просмотров

Будет ли «пустой» конструктор или деструктор делать то же самое, что и сгенерированный?

Предположим, у нас есть (игрушечный) класс C ++, например следующий: class Foo { public: Foo(); private: int t; }; Поскольку деструктор не определен, компилятор C ++ должен автоматически создать его для класса Foo. Если деструктору не нужно очищать динамически выде...

4
голосов
1ответов
1681 просмотров

Почему WCF не уничтожает объект, когда я закрываю клиентское приложение без вызова метода «Close» на стороне клиента?

У меня есть служба WCF net tcp, как показано ниже [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class AVService : IAVService { static int _numberofInst = 0; public AVService() { ++_numberofInst; Conso...

7
голосов
2ответов
3737 просмотров

Очистка внутреннего соединения pysqlite при уничтожении объекта

У меня есть объект с подключением к внутренней базе данных, который активен на протяжении всего срока службы. В конце выполнения программы соединение должно быть зафиксировано и закрыто. До сих пор я использовал явный метод close, но это несколько громоздко, особенно когда в вызывающем коде могу...