c++:请求地址给出值
Pointers c++ : ask address gives value?
我对最近在stackoverflow上看到的这段代码感到困惑。返回值必须是inarray &(所以是地址,对吧?)然后他返回*this(一个值,对吧?)这对我来说似乎不合逻辑…这个问题可能是重复的,但我没有发现,所以非常抱歉,如果它是。下面是代码:
IntArray& IntArray::operator=(const IntArray& other){
if(this == &other){
return *this;
}
...
}
你的困惑都是由于IntArray&
,这不是一个地址,它是一个参考。
虽然operator&
(除非重载)通常在像&value
这样的表达式中产生一个指针,但在这种情况下,&
在任何生成的T&
(对于某些类型T
)中都与该操作符无关,它与类型相关。
同理,T&&
是对T
的右值引用。
在您的特定实例中,则:
IntArray& IntArray::operator=(const IntArray& other){
if(this == &other){
return *this;
}
...
}
您知道this
是指向IntArray
的指针,并且通过与operator*
解引用它,您将获得IntArray&
值,该值与该函数的返回类型完全匹配。
相关文章:
- 将数组的地址分配给变量并删除
- 空基优化子对象的地址
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 如何在c++程序中找到函数的地址
- 如何在boost beast http请求中设置http头
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 被解释为低级别const的const对象的地址
- 发送一个带有libcurl C++问题的帖子请求:s
- 将地址分配给本地指针后,公共对象的变量将消失
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- 内联程序集printf将整数解释为地址
- 提升 UDP 组播接收器: set_option:请求的地址在其上下文中无效
- 尝试发送 GET 请求,将 301 发送到同一地址
- Icmp子网地址请求
- 请求新操作员的特定地址
- c++:请求地址给出值
- WinSock连接前绑定导致WSAEADDRNOTAVAIL-请求的地址在其上下文中无效
- 如何解决"无法分配请求的地址?