我有一個代碼庫,這使得大量使用的語法如下工作:我應該使用shared_ptr <Object> myObject =(shared_ptr <Object>)new Object()來訪問私有構造函數嗎?
shared_ptr<Object> myObject = (shared_ptr<Object>) new Object();
我發現我不能make_shared
訪問私有構造函數,但shared_ptr<Object> myObject = (shared_ptr<Object>) new Object();
工作得很好。我應該使用它,只是因爲它似乎工作?有什麼危險嗎?它與make_shared
有什麼不同?
我知道答案的問題this,使make_shared
之間的比較:
std::shared_ptr<Object> p2(new Object("foo"));
,但我一直沒能找到我碰到的語法的參考。它是不同的,還是它與上述相同?
第一行代碼看起來像一個'C'風格的演員:看到(1)在這裏:http://en.cppreference.com/w/cpp/language/explicit_cast –
看看這裏:https:/ /stackoverflow.com/questions/32168/c-cast-syntax-styles – zdan