我在C++項目中使用C編寫的庫。對C指針使用std :: bad_alloc
我想使用C++異常來處理C錯誤。尤其是,如果分配失敗,那麼拋出異常將會很好。
if (c_object == NULL)
throw std::bad_alloc();
但如果類負責幾個C的對象,他們是沒有自由荷蘭國際集團都已經分配的方式:
我可以在類的構造函數持有C風格的指針C的結構做因爲析構函數沒有被調用,所以指針。
我有一種感覺,我可以使用智能指針,但我沒有太多的經驗與他們。更重要的是,我必須有權訪問原始C指針才能正確使用C api。
有沒有一個優雅的解決方案呢?
C++ RAII(資源獲取是初始化),每個類只管理1個資源。 – 2011-02-18 15:12:12
如果我這樣做,我基本上最終會爲C庫編寫一個C++包裝器。我跳了一個更簡單的解決方案:/ – fouronnes 2011-02-18 15:16:40