使用对象的引用作为别名是否总是安全的?例如,一个字符串:
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
,您仍然在指的是test
。简而言之,是的。
注意有一些限制。例如,以下不是标准的:
std::string &reftest( std::string("test") );
但是这个
const std::string &reftest( std::string("test") );
是因为常量引用可以绑定(bind)到临时对象,而非常量引用则不能。
关于c++ - C++使用对字符串的引用作为别名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10643005/