可能重複:
How to prevent an object being created on the heap?什麼是基於堆棧的類?
嗨,
我聽到一個稱爲基於堆棧類的概念。即我們不能使用new創建類的實例。
我聽到這是第一次。一種通過私人重載「新」操作符來實現這一點的方法。
如果有人知道基於堆棧的課程的詳細信息,請通知我。
可能重複:
How to prevent an object being created on the heap?什麼是基於堆棧的類?
嗨,
我聽到一個稱爲基於堆棧類的概念。即我們不能使用new創建類的實例。
我聽到這是第一次。一種通過私人重載「新」操作符來實現這一點的方法。
如果有人知道基於堆棧的課程的詳細信息,請通知我。
而不是超載新運營商遵循Factory模式。
這一切都在實例:
AnotherClass::SomeMethod(...) {
MyClass stackBased;
MyClass *heapBased;
*heapBased = new MyClass();
*heapBased->DoSomething();
delete heapBased;
stackBased.DoSomething();
...
}
一個stackbased類是自動分配的,實例化,並重新分配在堆棧上,而你需要自己動手做一堆。
這不是問題。問題是,你會如何阻止你的代碼片段編譯?你對'MyClass'做了什麼,以致於「我們不能用new創建類的實例」(引用上面的問題)。 – 2010-08-19 12:05:15
對不起,誤解了這個問題。但在那種情況下,KennyTM指出這個問題可能是重複的。 – 2010-08-19 12:11:12
我一直聽到很多關於使用工廠而不是最近重載「新」......爲什麼是這樣? – xitrium 2010-08-19 12:04:52
''獲取最後一個實例的訪問方法(從棧頂開始)''---- ???你能詳細解釋一下嗎? – IanH 2010-08-19 12:11:57