这是一个新手问题,但我不明白它是如何工作的.
假设我有如下的功能
void foo(const std::string& v) { cout << v << endl; }
并在我的程序下面的电话.
foo("hi!");
本质上,我将const char *传递给一个函数参数,该引用是对字符串的引用,所以我对此调用有疑问.
为了通过引用传递参数,我可以说变量必须至少存在于调用的持续时间吗?如果是这样,在哪里创建传递给函数的字符串?
我可以看到它有效:它是否发生,因为编译器会创建传递给参数或函数的临时字符串?