0
我有一個類的頭文件叫做串行內超載:serial.h瞭解操作Singleton模式
這裏面的頭文件,我有以下類型的操作超載:
private:
...
Serial & operator = (const Serial &);
我知道,這就像here
我還looked up操作過載,發現賦值運算符的以下示例的單例模式的一部分:
void operator=(const Distance &D)
但是「&」是什麼意思?它是如何工作的?
所以'Serial operator =(const Serial);'會給一個Serial對象的一個常量副本? AND如果我會寫: 'Serial&operator =(const Serial&);'OR'Serial&operator =(const Serial&);'OR'Serial&operator =(const Serial&); Serial&operator =(const Serial&);'? – goulashsoup
'串行運算符=(常量串行)'將獲取一個串行的恆定副本並返回一個非常量串行對象。根據你的實現和編譯器優化,返回值可能是複製的,但是它是一個右值而不是左值,所以像'serial1 = serial2 = serial3'這樣的東西就會失效。最好是你按照πάνταῥεῖ提供的重複鏈接,在那裏詳細解釋一切。空格的放置在這裏不會改變任何東西。 – Anedar