2012-06-03 50 views
0

我有一個用C++編寫的複雜函數定義。這是我第一次遇到這樣一個複雜的函數定義,我無法理解它的含義。瞭解複雜的函數定義

t_group& t_group::operator=(const t_group &a) 
{ 

} 

具體我需要知道什麼

運算符=(const的t_group &一)

是什麼意思?

+3

爲什麼選擇了低票?這個問題是恰當的制定。 對一些傲慢的專家來說可能太容易了......但是不管怎樣或某個時候,記住你們所有的「小孩」。 –

+0

+1它不像操作符重載是所有計算機語言的標準甚至是必需的特徵。另外,運算符重載有許多你必須學習的語義;它不像參數非常隨意的函數。 –

+0

http://en.wikipedia.org/wiki/Assignment_operator_%28C%2B%2B%29 – wroniasty

回答

5

這裏的故障:

t_group& 

該函數返回到t_group參考。

t_group:: 

該函數位於t_group命名空間中。由於t_groupstructunionclass的名稱,因此它是t_group的成員。

operator= 

功能爲=操作者的超負荷。由於它是一種方法,因此該對象是=運算符的左側。

(const t_group &a) 

這是參數的功能:它是=操作者的右手邊。這表示右側是對t_groupconst引用,這意味着該函數不會更改t_group

綜合起來,這是對t_group類的複製作業操作。它由以下代碼調用:

t_group a, b; 
b = a; 

後一行相當於b.operator=(a);

P.S.賦值運算符函數通常以return *this;結尾。這樣您就可以像指定的=操作員那樣鏈接作業(例如a = b = c)。