您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了php中拷貝構造函數、賦值運算符重載的示例,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“php中拷貝構造函數、賦值運算符重載的示例”這篇文章吧。
php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
對象的賦值與復制: 賦值:通過“ = ”運算符重載
User a(10),b;
b = a;
復制:調用復制構造函數
User b;
User a(b);
或者
User a = b;//相當于User a(b);
與賦值的區別,賦值是對一個已經存在的對象進行賦值(已經實現定義了被賦值的對象),而復制是從無到有建立一個新的對象,并使它與已有的對象相同。
淺復制與深復制: 若對象中有指針成員,在復制時,只會將該指針成員的地址復制給新建立的對象,因此,兩個對象中的指針成員都指向了同一塊內存區域,在釋放時會出現重復釋放的問題。 需要手動定義復制構造函數,在構造函數中將為指針變量分配新的內存,是不同對象的指針成員指向不同的內存區域。
用到拷貝構造函數的三種情況: 1、需要建立一個新對象,并用另一個同類對象對其進行初始化 2、函數的參數為類的對象時,在調用函數時需要建立一個實參的拷貝,按實參復制一個形參,系統是通過調用拷貝構造函數實現的 3、函數的返回值是類的對象:函數調用結束時,需要將函數中的對象復制一個臨時對象,并傳給該函數的調用處。
User getUser() { User temp; return temp; } int main() { User user = getUser();//調用getUser(); }
getUser()函數調用結束時,getUser中建立的對象temp的生命周期結束(即將銷毀),所以不是將temp帶回main,而是在執行return語句時,調用User類的拷貝構造函數,按temp拷貝一個新的、對象,然后將它賦值給user.
以上就是關于“php中拷貝構造函數、賦值運算符重載的示例”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。