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

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/

10-11 21:45