Что такое класс на основе стека? [duplicate]

Возможный дубликат:
Как предотвратить создание объекта в куче?

Привет,

Я слышал концепцию, называемую классом на основе стека. Т.е. мы не можем создать экземпляр класса, используя new.

Я слышу это впервые. Один из способов реализовать это - частная перегрузка оператора 'new'.

Если кто-нибудь знает подробности о классе на основе стека, пожалуйста, сообщите мне.

1
задан Community 23 May 2017 в 11:47
поделиться

2 ответа

Вместо перегрузки нового оператора следуйте шаблону Factory .

  • Статический метод для создания новых экземпляров этого класса.
  • Метод доступа для получения последнего экземпляра (из вершины стека)
0
ответ дан 2 September 2019 в 22:00
поделиться

Все дело в создании экземпляра:

AnotherClass::SomeMethod(...) {
  MyClass stackBased;
  MyClass *heapBased;

  *heapBased = new MyClass();
  *heapBased->DoSomething();
  delete heapBased;

  stackBased.DoSomething();

  ...
}

Класс на основе стека автоматически выделяется, инстанцируется и освобождается в стеке, тогда как вам нужно делать все это самостоятельно для работы в куче.

2
ответ дан 2 September 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: