C++ 使用对字符串的引用作为别名

标签 c++ string

使用对象的引用作为别名总是安全的吗?例如一个字符串:

std::string test;
std::string &reftest( test );
std::cout << "test before: " << test << "\n";
std::cout << "reftest before: " << reftest << "\n";
reftest = "abc";
std::cout << "test after: " << test << "\n";
std::cout << "reftest after: " << reftest << "\n";

是否可以保证 reftest 和 test 始终具有相同的字符串?

最佳答案

如果您将引用视为昵称,它会有所帮助。即使您说的是 reftest,您仍然是 referring test。所以,简而言之,是的。

注意有一些限制。例如,以下是不标准的:

std::string &reftest( std::string("test") );

但是这个

const std::string &reftest( std::string("test") );

是,因为 const 引用可以绑定(bind)到临时对象,而非 const 则不能。

关于C++ 使用对字符串的引用作为别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643005/

相关文章:

c++ - 如何使错误处理为 boost::spirit 工作

ruby 字符串文字缓存?

javascript - 循环故障的二进制转换器

预连接的 PHP 速记?

java - 如何读取文件并按行分割文本?

C++11 static_assert : Parameterized error messages

c++ - 重载运算符?

c++ - 使用模板按内部数据对对象进行排序的排序算法

c++ - 除了尾递归之外的尾调用优化?

python - 提取以符号开头和结尾的子字符串并在Python中替换为变量