我想阻止任何東西,但我的類的工廠從構建我的類的類型的對象。我需要這個類有一個公共接口,但我想限制它的創建只有它的工廠。我怎麼做?如何將一個類的構造函數的調用限制爲其工廠類?
我們稱之爲類Car
和工廠CarFactory
。下面是我如何做到這一點最初的想法,而無需使用friend
和公開所有私有成員工廠:
class Car {
private:
Car();
Car(Car& ref);
friend class CarFactory;
};
class CarFactory {
public:
Car * makeCar();
};
我發現一個Java相關的問題:How do I make a constructor available to only the factory class?
上面的代碼工作原樣。爲了澄清,我想知道是否有辦法只與工廠共享構造函數,而不是所有的私有成員?
這幾乎可以正常工作。預期和觀察到的行爲是什麼? –
在陳述的最後添加問號並不能提供有用的問題嗎? –
它的工作原理是,我不確定是否是限制訪問工廠類的正確方法。有沒有辦法做到這一點,而不將Car類的所有私有成員暴露給CarFactory類? – tylerjw