直接初始化和拷贝初始化有时是完全一样的,有时不一样,视涉及的类而定
比如对于string类,string s4("value") 是直接初始化,string s5="value"; 是拷贝初始化,在vs2019下测试,两者完全一样:
上面两图表明,拷贝初始化和直接初始化的汇编代码是一样的,没有区别(至少在vs2019下是这样)。
而对于vector<int>类,直接初始化 vector<int> ivec(10) 是合法的,而拷贝初始化 vector<int> ivec=10 这种写法是错误的