【发布时间】:2016-10-26 21:51:37
【问题描述】:
void print(const string& str){
cout << str <<endl;;
}
int main(){
print(string("asdf"));
}
我想我可以这样理解 创建了一个临时字符串对象,并通过引用将其传递给函数。参数 str 实际上与该临时字符串对象完全相同。
但是如果我用 print("asdf"); 代替调用呢? 在这种情况下究竟发生了什么? 我知道涉及隐式转换。但我不确定何时以及如何完成? 我的意思是它是否也创建了一个临时字符串对象?
【问题讨论】:
-
同样的事情将被隐式完成。
标签: c++ pass-by-reference