kum*_*ran 1 c++ variables reference
我想大多数人会再次对这个话题感到惊讶,但我指的是一本由"Stephen C. Dewhurst"编写的书"C++ Common Knowledge:Essential Intermediate Programming".
在书中,他引用了一个特定的句子(在第5项中的部分,参考文献是别名,不是指针),如下所示
引用是在引用初始化之前已存在的对象的别名.初始化引用以引用特定对象后,以后不能引用其他对象 ; 引用在其整个生命周期中绑定到其初始化程序
任何人都可以解释"以后不能被引用到不同的对象"的上下文
下面的代码对我有用,
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i = 100;
int& ref = i;
cout<<ref<<endl;
int k = 2000;
ref = k;
cout<<ref<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在这里我指的变量ref既i和j变量.代码工作得非常好.
我错过了什么吗?我使用SUSE10 64位linux来测试我的示例程序.
感谢您提前输入.
Mar*_*off 11
你没有绑定ref到另一个对象:当你这样做时ref = k,就像你做的那样i = k,只是重新分配了 它的值i.换句话说,你打电话i的operator=.
这里有更好地展示这个想法的东西:
#include <iostream>
int main()
{
std::ostream& stream = std::cout;
stream = std::cerr; // fails to compile! Cannot access ostream::operator=
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |