0
我有一個用C++編寫的複雜函數定義。這是我第一次遇到這樣一個複雜的函數定義,我無法理解它的含義。瞭解複雜的函數定義
這
t_group& t_group::operator=(const t_group &a)
{
}
具體我需要知道什麼
運算符=(const的t_group &一)
是什麼意思?
我有一個用C++編寫的複雜函數定義。這是我第一次遇到這樣一個複雜的函數定義,我無法理解它的含義。瞭解複雜的函數定義
這
t_group& t_group::operator=(const t_group &a)
{
}
具體我需要知道什麼
運算符=(const的t_group &一)
是什麼意思?
這裏的故障:
t_group&
該函數返回到t_group
參考。
t_group::
該函數位於t_group
命名空間中。由於t_group
是struct
,union
或class
的名稱,因此它是t_group
的成員。
operator=
功能爲=
操作者的超負荷。由於它是一種方法,因此該對象是=
運算符的左側。
(const t_group &a)
這是參數的功能:它是=
操作者的右手邊。這表示右側是對t_group
的const
引用,這意味着該函數不會更改t_group
。
綜合起來,這是對t_group
類的複製作業操作。它由以下代碼調用:
t_group a, b;
b = a;
後一行相當於b.operator=(a);
。
P.S.賦值運算符函數通常以return *this;
結尾。這樣您就可以像指定的=
操作員那樣鏈接作業(例如a = b = c
)。
爲什麼選擇了低票?這個問題是恰當的制定。 對一些傲慢的專家來說可能太容易了......但是不管怎樣或某個時候,記住你們所有的「小孩」。 –
+1它不像操作符重載是所有計算機語言的標準甚至是必需的特徵。另外,運算符重載有許多你必須學習的語義;它不像參數非常隨意的函數。 –
http://en.wikipedia.org/wiki/Assignment_operator_%28C%2B%2B%29 – wroniasty