C 賦值操作符

2021-05-27 07:02:02 字數 461 閱讀 1442

定義類時,編譯器會自動幫我們定義的有四個:建構函式、析構函式、複製建構函式、賦值操作符。賦值操作符定義了該型別的物件賦值時會發生什麼。

過載操作符是一些函式,其名字為operator後跟著所定義的操作符的符號。通過定義名為operator= 的函式,我們可以對賦值操作符進行定義。該函式有返回值和形參表。形參表必須具有與該操作符運算元數目相同的形參(如果操作符是成員函式,則包括隱式形參this)。賦值操作符是二元運算子,所以該操作符函式有兩個形參:第乙個形參對應著左運算元,第二個形參對應有運算元。當操作符為成員函式時,它的第乙個運算元隱式繫結到this指標。賦值操作符必須是定義自己的類的成員,因此,賦值操作符接收單個形參,並且該形參是同一型別的物件。右運算元一般作為const引用傳遞。

class configinfo;
合成賦值操作符會執行逐個成員賦值,對於陣列成員,會給每個陣列元素賦值。

賦值操作符

與類要控制初始化物件的方式一樣,類也定義了該型別物件賦值時會發生什麼 sales item trans,accum trans accum 與複製建構函式一樣,如果類沒有定義自己的賦值操作符,則編譯器會合成乙個。過載操作符是一些函式,其名字為 operator 後跟著所定義的操作符的符號。因此,通過...

賦值操作符

預設的賦值操作符用於處理同類物件之間的賦值,不要與複製建構函式混淆.如果是建立新的物件,則呼叫複製 拷貝 建構函式,如果是修改已有物件的值,則呼叫賦值操作符 myclass aclass myclass bclass aclass 呼叫複製建構函式 myclass cclass cclass acl...

C 類賦值( )操作符

如果使用者沒有編寫賦值操作符函式,編譯器就會自動為使用者建立乙個。這就是為什麼使用者可以實現p1 p2,為類賦值。語法 類名 operator const 類名 source arg 說到這裡,便想起來之前提到的副本構造器,用到副本構造器的地方其中之一是用某個物件去初始化另乙個物件。point a ...