gpt4 book ai didi

c++ - 别名的别名?

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:45 27 4
gpt4 key购买 nike

是否可以为引用变量创建引用(别名本身的别名)?

如果是,它的应用是什么?

最佳答案

在 C++98 中,形成对引用类型的引用是非法的。在 C++11 中,有新的 reference collapsing 规则,简而言之,对引用的引用仍然只是一个引用(但左值和右值引用有一些微妙之处)。考虑这段代码:

typedef int & ir;
int a;
ir & b = a;

在 C++98 中,最后一行是非法的,因为 ir & 不是有效类型(试图引用引用)。在 C++11 中,引用崩溃,ir &int & 相同。

请记住,引用是不可变的,一旦初始化,您就永远无法更改引用的目标。在上面的代码中,b 永远是a 的别名,永远不能变成别的东西的别名。因此,不需要双重间接寻址,因为它不会让你做任何你已经可以用普通引用做的事情。

为完整起见,引用折叠规则如下。假设 T 不是引用类型。然后在概念上我们有:

(T&)& == T&    (T&)&& == T&    (T&&)& == T&    (T&&)&& == T&&

关于c++ - 别名的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com