使用对象的引用作为别名总是安全的吗?例如一个字符串:
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/