例如:
std:: unique_ptr<int> int_ptr = new int(10); // 錯誤。要求從'int*'轉換到非標量型別'std::unique_ptr'。
std:: unique_ptr<int> 指標(new int(10)>。 //這個作業很好。
uj5u.com熱心網友回復:
這兩個都是初始化,但不是賦值。第一個是復制初始化,第二個是直接初始化。std::unique_ptr的構造器取用原始指標被標記為explicit,它可以用于直接初始化,但不能用于拷貝初始化
explicit unique_ptr( pointer p ) noexcept。
直接初始化比復制初始化更為寬松:復制初始化只考慮非顯式建構式和非顯式用戶定義的轉換函式,而直接初始化考慮所有建構式和所有用戶定義的轉換函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/314161.html
標籤:
