【发布时间】:2011-04-01 02:14:13
【问题描述】:
你好,
我听说过一个叫做基于堆栈的类的概念。 IE。我们无法使用 new 创建类的实例。
我第一次听到这个。通过私有重载“new”运算符来实现此目的的一种方法。
如果有人知道有关基于堆栈的类的详细信息,请通知我。
【问题讨论】:
你好,
我听说过一个叫做基于堆栈的类的概念。 IE。我们无法使用 new 创建类的实例。
我第一次听到这个。通过私有重载“new”运算符来实现此目的的一种方法。
如果有人知道有关基于堆栈的类的详细信息,请通知我。
【问题讨论】:
遵循Factory 模式而不是重载 new 运算符。
【讨论】:
一切都在实例化中:
AnotherClass::SomeMethod(...) {
MyClass stackBased;
MyClass *heapBased;
*heapBased = new MyClass();
*heapBased->DoSomething();
delete heapBased;
stackBased.DoSomething();
...
}
基于堆栈的类会在堆栈上自动分配、实例化和解除分配,而基于堆的类则需要您自己完成。
【讨论】:
MyClass 做了什么,以至于“我们不能使用 new 创建类的实例”(引用上面的问题)。