我对 C++ 还是很陌生,但到目前为止对我来说,两者在适用性方面似乎没有区别。我知道的唯一区别是,只要用文字或表达式初始化,对 const 对象的引用就会绑定(bind)到一个临时对象。
但由于只要绑定(bind)到它的引用存在,临时变量就存在,所以如果它们都由文字/表达式初始化,那么对 const 的引用和 const 变量之间似乎没有适用的区别。
那么,在任何情况下您只能或宁愿选择一个而不是另一个吗?
最佳答案
在函数范围内,没有区别。临时绑定(bind)到引用将存在,直到函数返回。
但是,对于类成员,相关函数返回时引用仍将被销毁,相关函数是构造函数 - 而不是析构函数!构造函数进行初始化,因此临时对象仅存在于构造函数中。
如果您有一个 const int
成员,当然可以正常工作。
关于c++ - 在适用性方面,如果 "const int &i"和 "const int i"都是用文字/表达式初始化的,它们有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31528797/