我想從函數返回一個類的實現。該函數在庫中。我想阻止用戶銷燬我返回的對象。我怎樣才能做到這一點?如何防止用戶破壞對象
編輯:例子。
接口世界:
class Base
{
public:
virtual void foo() = 0;
};
Base* GetFoo();
實現 - 內部:
class Bar : public Base
{
public:
void foo() { //Do something}
};
Base* GetFoo()
{
return new Bar
}
有點超出了原始問題的範圍,但我不確定爲什麼使用單獨的函數來獲取接口基礎(實例欄)。你爲什麼不使用工廠方法。 – 2010-12-06 06:21:58
只要用戶試圖將計算機編程爲爆炸顯示器即可。 – 2010-12-06 06:34:01
我相信你想Bar()的構造函數也是私有的? – Jaywalker 2010-12-06 06:46:08