Подтвердить что ты не робот

Могу ли я разрушить структуру на С++?

Есть ли способ разрушить структуру (не класс)?

4b9b3361

Ответ 1

В С++ a struct точно совпадает с class, за исключением видимости по умолчанию для членов и баз. Поэтому, если есть способ "уничтожить" класс, вы можете использовать тот же самый способ, чтобы "разрушить" структуру.

Итак, если у вас есть struct s { } в вашей программе на С++, вы можете сделать это:

s *v = new s();
delete v; // will call structure destructor.

Ответ 2

За исключением спецификатора доступа по умолчанию ("private" для класса, "public" для struct), все остальное одинаково в классе и структуре С++. Итак, ДА, вы можете писать и использовать деструкторы в структуре так же, как в классе.

Ответ 3

Структуры идентичны классам, кроме видимости по умолчанию и наследования являются общедоступными (а не частными).

Итак, вы можете создавать и уничтожать структуры так же, как это (такой же, как класс или встроенный тип):

// Create on the heap, need to manually delete.
MyStruct *const pStruct = new MyStruct();
delete pStruct;

// Created on the stack, automatically deleted for you.
MyStruct struct;

Ответ 4

Структуры и классы - это одно и то же, есть только техническая разница (поле доступа по умолчанию), которое происходит из-за концептуальной разницы между ними. Однако каждая структура, подобная классу, вызывает свои конструкторы, когда объекты должны быть созданы, и ее деструктор, когда заканчивается поле видимости.

В С++ структуры не менее эффективны, чем классы.