下面是一個簡單的代碼:運算符重載返回類型
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