您好我有一個編譯錯誤,當我運行此代碼:創建具有2個參數
std::auto_ptr<MyDisplay> m_display =
std::auto_ptr<MyDisplay>(new MyDisplay(this, m_displayController));
錯誤是這個:
error C2664: 'MyDisplay::MyDisplay(DemoWindow *,DisplayController*)':
cannot convert parameter 2 from 'std::auto_ptr<_Ty>' to 'DisplayController*'
但是當我通過只有一個參數的代碼是正確的:
std::auto_ptr<DisplayController> m_displayController =
std::auto_ptr<DisplayController>(US_NEW(DisplayController, this));
什麼是與2個參數創建auto_ptr的指針的正確方法?
什麼'MyDisplay'?正如@sharth所說,你爲什麼要使用'auto_ptr',因爲除非你有一個非常好的理由,否則! –
請不要使用['std :: auto_ptr'](http://en.cppreference.com/w/cpp/memory/auto_ptr),它已被__deprecated__。你會讓自己無法結束心痛。請使用['std :: shared_ptr'](http://en.cppreference.com/w/cpp/memory/shared_ptr)或['std :: unique_ptr'](http://en.cppreference.com/w/cpp/memory/unique_ptr)。 –
這段代碼是爲什麼'std :: auto_ptr'很糟糕:https://gist.github.com/sharth/637dfafbf579183f5d7b –