close

複製建構式:

複製建構式是以同型物件作為參數的建構式,對 Grade 類別而言, Grade(const Grade&)就是他的複製建構式:

Grade a(30);
Grade b(a);

 

賦值運算子:

operator= 是賦值運算子,我們可對他作多載:

Grade a(30);
Grade b; 
b = a;
  //呼叫 b.operator=(a)

 

大三法則:

當類別定義了建構式、複製建構式與賦值運算子三個特殊函式的其中一個時,通常其他兩個也都要同時被定義。

1、解構式:什麼都不做。此時指標指向的記憶體並不會被釋放,可能造成記憶體洩漏。

2、複製建構式:直接複製資料成員,此時指標所指向的記憶體位址也會直接被複製過去。

3、賦值運算子:直接複製資料成員,此時原本指標指向的記憶體可能還沒被釋放,但指標所指向的位址已經被改變了,會造成記憶體洩漏。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 阿洲 的頭像
    阿洲

    阿洲程式天地

    阿洲 發表在 痞客邦 留言(0) 人氣()