[英]Confusion about overloading assignment operator
假設有一個稱為Vector的類,我想為其重載賦值運算符,使其能夠像這樣工作:a = b = c;(a,b,v是Vector類的對象)
但是有一件事使我感到困惑。 假設有兩個原型:
Vector & operator=(const Vector & v);
const Vector & operator=(const Vector & v);
兩者在'a = b = c'的情況下均起作用。 那么,哪個更好或更合適?
對於初學者,使用std::vector
命名類“ Vector”可能會導致頻繁的混淆和混淆。 您應該選擇一個更好的名稱。 不幸的是,現在也采用了“數組”。
第一個是標准賦值運算符。 當然,賦值運算符僅是為可變類實例定義的,因此它應返回對可變類實例的引用。
有趣的是,就我個人而言,我會選擇第一個,原因是第二個在結果上強制保持一致性。 這可能是您不想要的,也可以根據需要在外部通過使用const等從外部函數返回來強制實施constness。至少您可以手動修改矢量分量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.