我碰到這個例子來自加速C++當參數傳遞參數時,爲什麼在函數參數上調用複製構造函數?
vector<string> func(const string&); //function declaration
vector<string> v;
string line = "abc";
v = func(line); //on entry, initialization of func's single parameter from line
//on exit, both initialization of the return value and then assignment to v
我的問題是,因爲FUNC需要一個常量字符串引用作爲參數,爲什麼拷貝構造函數調用時進入FUNC?由於行被引用傳遞不func只是保持其本地堆棧上的行的引用?
是什麼讓你認爲複製構造函數被調用? –
這就是本書暗示的「在入口,func的參數從行初始化」的評論 – Jeff
我看不到函數體 - 你將該字符串添加到向量? stl容器具有傳值語義 –
alexm