什么是基于堆栈的类?

时间:2010-08-19 11:56:12

标签: c++ oop

  

可能重复:
  How to prevent an object being created on the heap?

嗨,

我听到一个叫做基于堆栈的类的概念。即我们无法使用new创建类的实例。

我第一次听到这个消息。通过私有重载“新”运算符来实现此目的的一种方法。

如果有人知道有关基于堆栈的课程的详细信息,请通知我。

2 个答案:

答案 0 :(得分:2)

这一切都在实例化中:

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

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

  stackBased.DoSomething();

  ...
}

基于堆栈的类在堆栈上自动分配,实例化和解除分配,而您需要自己为堆基类完成所有操作。

答案 1 :(得分:0)

而不是重载新的运算符遵循Factory模式。

  • 用于创建此类的新实例的静态方法。
  • 获取最后一个实例的访问方法(从堆栈顶部开始)