引用是否会更改引用对象的状态
Does reference changes the state of the referent
正如我所读到的
---引用不是指针,它是对象本身,引用是作为另一个对象的别名的实体。
---引用永远不能表示空
---引用变量允许两个变量名称寻址相同的内存位置:
---以后不能让它指代不同的对象
---引用不是变量,因为变量仅由对象的声明引入。对象是一个存储区域,C++,引用(不一定)占用任何存储。
现在下面一行将变量整数转换为常量整数
const Array& ref = integers
此外,我读了这个还说您可以更改引用的状态。
请建议/澄清。
不,它不会转换integers
。您现在只有一个integers
别名,您无法通过它进行更改。您仍可以通过原始名称更改integers
:
int i = 0;
int const& i_ref = i;
i = 5;
cout << i_ref; // outputs 5
上面的考官还展示了如何改变裁判的状态。
不能更改常量引用的状态。除此之外,你提到的一切都是真的。
所以例如:
const int& ref = integers;
ref = 5;
将无法编译。其中作为
int& ref = integers;
ref = 5;
将编译,它将以整数形式存储的值更改为 5。
此外,const 引用意味着您无法使用引用更改它引用的对象的值。您仍然可以使用原始变量名称对其进行修改。例如:
const int& ref = integers;
integers = 5;
std::cout<<ref<<", "<<integers<<std::endl;
是完全有效的,并将产生:
5, 5
相关文章:
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- collect2:错误:ld 返回 1 个退出状态未定义的引用
- 对"displayForStudent(int, int const*, double const*, int)"的未定义引用 collect2.exe:错误:ld 返回 1 个退出状态
- C++ 链接器错误未定义对"Suma(int, int)"的引用 ld 返回 1 个退出状态
- C++ 在另一个对象中引用对象的当前状态
- ..未定义对..的引用..collect2:ld返回1退出状态
- /tmp/ccQ0q0g5.o:(.eh_frame+0x11):对"__gxx_personality_v0"的未定义引用 collect2:ld 返回 1 个退出状态
- 有人能解释一下这些编程术语吗:引用语义,非线性可变状态
- 未定义的引用EVP_sha1、HMAC、Id 返回 1 个退出状态
- 在传递到线程后保持引用处于活动状态
- 如何修改/更新通过 const 引用传递的对象的内部状态
- JNI保留对对象的全局引用,并使用其他JNI方法访问它.在多个JNI调用中保持C++对象的活动状态
- 对"elast_opt()"的未定义引用 collect2:ld 返回 1 个退出状态
- 对 'json11::Json::d ump(std::string&) const' collect2 的未定义引用:错误:ld 返回 1 个退出状态
- C++编译错误:取消定义对'printMaze(int const(*)[16],int,int)'的引用,Id 返回 1 退出状态
- 在函数 '_start' 中: (.text+0x20): 未定义对 'main' 的引用 collect2: ld 返回 1 个退出状态
- 如何使用捕获子句从lambda获取状态引用
- 引用是否会更改引用对象的状态
- 有没有比编写存储对有状态分配器对象的引用的包装器分配器更好的方法