Sobes.tech
Back to questions
Junior — Middle
89

Каким образом можно запретить создание экземпляров класса в динамической памяти?

Answer from AI

sobes.tech AI

Чтобы запретить создание экземпляров класса в динамической памяти (через new), можно сделать оператор new приватным или удалить его объявление.

Пример на C++:

class MyClass {
public:
    MyClass() {}
    // запрет создания в динамической памяти
    void* operator new(size_t) = delete;
    void operator delete(void*) = delete;
};

int main() {
    MyClass obj; // OK, на стеке
    // MyClass* p = new MyClass(); // Ошибка компиляции
}

Таким образом, объекты можно создавать только на стеке или как статические, но не через new.