我是C++的新手,並試圖找出指針和引用之間的區別。我剛剛讀了this short summary。C++運算符重載將指針類型作爲參數?
在文章中,作者提到day *operator++ (day *d);
不會編譯(注:day
是枚舉類型),並認爲此重載操作者功能的參數的類型必須是T,T &,或T const的&,其中T是一個類或枚舉類型。
我假設指針是內置類型而不是類或枚舉,所以它不能用於重載操作符,並且操作符重載不可能適用於所有內置類型,如int和double。
例如,int i = 1; ++i;
將永遠不會導致i
爲3,因爲++
運算符負載類型爲int
。
我正確嗎?請幫助我更好地理解此問題。在操作符重載
我看了一下你的問題中的鏈接--- *可怕*(你可以從他們的例子甚至沒有編譯的事實中已經知道)。引用的最常見用法是:當複製對象時,1個const引用作爲函數參數會效率低下(並且可能由於缺少複製構造函數而被禁用); 2許多非const成員函數(包括運算符)的返回類型; 3一個非const引用作爲函數參數,當對象被修改時(這個用法是有爭議的,因爲指針也很受歡迎); 4作爲數據成員,永遠不能改變(而不是指針)。 – Walter