派生類賦值操作符

2021-08-21 07:32:49 字數 378 閱讀 5980

賦值操作符通常與複製建構函式類似:如果派生類定義了自己的賦值操作符,

則該操作符必須對基類部分進行顯式賦值。

// base :: operator = ( const base & ) not invoked automatically 

derived & derived:: operator=( const derived &rhs )

賦值操作符必須防止自身賦值。假定左右運算元不同,則呼叫base類的賦值操作符

給基類部分賦值。該操作符可以由類定義,也可以是合成賦值操作符,這沒什麼關係--

我們可以直接呼叫它。基類操作符將釋放左運算元中基類部分的值,並賦以來自rhs的新值。

該操作符執行完畢後,接著要做的是為派生類中的成員賦值。

C 類賦值( )操作符

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

賦值操作符

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

賦值操作符

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