0
感謝任何願意幫助的人:將構造函數傳遞給共享指針
我想在C++中創建一個Singleton類,並且我對這個語言很陌生。我的scrum團隊方法說我們應該只使用共享指針。然而,當我試圖將構造函數傳入我的Singleton對象(共享指針)時,出現錯誤,如「binary'=':沒有找到需要右手操作數的操作符...」。基本上不兼容的類型轉換。提供了以下必要的代碼:
//Singleton getter class
std::shared_ptr<LibMouse3d::LibCoreMouse3d::DeviceHandle> LibMouse3d::LibCoreMouse3d::DeviceHandle::getInstance(){
if(device == NULL){
//trying pass constructor into shared pointer object
device = LibMouse3d::LibCoreMouse3d::DeviceHandle();
}
return device;
}
這是我的構造函數:
LibMouse3d::LibCoreMouse3d::DeviceHandle::DeviceHandle() {
this->InitDevice();
}
而且在頭文件中的對象
//singleton object - device
std::shared_ptr<DeviceHandle> device;
感謝您的任何努力,對不起,如果我忘了什麼事或添加非 - 相關信息。這是我的第一個問題,我無法在一段時間內回答自己的問題,也不希望我的Scrum高手擔心我的進度。
好吧,如果這是你永遠不要需要有一個單獨的_shared_指針 – user3159253
覺得作爲一個建設滯後一個全局變量_singleton_。 – user3159253
關於'shared_ptr'的使用我的看法,你不應該使用'NULL'。如果你需要一個空值,使用'nullptr',但是使用智能指針(和原始指針),'if(!device)'很好。 – chris