Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
void f(string &x); .. f(string("hello1")); ... f(new string("hello2"));
1)从上下文来看,一般来说。例如,C++ 没有像 Rust 这样的上下文无关语法。但是在这种特殊情况下,它始终是字符串构造。另外,请注意它不会编译,因为您会将右值传递给非常量引用。
2) hello2 在堆上创建一个新的字符串对象,而 hello1 没有。另外,请注意,您不能将指针传递给期望这样的引用的函数。它不会简单地使用 msvc、gcc、cland 等构建。