下面是一个简单的代码:运算符重载返回类型
Iterator& operator=(const Iterator& other)
{
node_ = other.node_;
return(*this); // This clearly is a value
}
在此我们承诺该函数将返回引用到迭代器数据类型。
但是我们返回一个值 ...这是如何工作..... ??
在许多例子中看到了这一点:
T& operator[] (unsigned int index)
{
if (index >= numEle)
return ptr[0]; // This clearly is a value
else
return ptr[index];
}
它是一种非常天真的疑问,但不能真正地理解它是如何工作的.....
你为什么说这是一个价值?它返回一个参考!为什么?因为编译器会看到你的函数签名,并且足够聪明以返回一个引用而不是值,所以根据函数的返回类型 – Sheen
引用**总是**从一个值创建。转换为引用类型是自动的。 –
*(this)是这个指针所指向的值......那个引用是如何的...? – PRP