Effective C++学习笔记之copy构造函数和default函数和copy赋值函数(operator=)
生活随笔
收集整理的這篇文章主要介紹了
Effective C++学习笔记之copy构造函数和default函数和copy赋值函数(operator=)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 、C++一個空的類里面一般默認的函數
比如我們寫?
class A {};一般里面系統會給你哪些默認函數呢?
class A { public:A(){} //default函數~A(){} //析構函數A(const A& a) {} //copy構造函數A& operator= (const A& a) {} //copy assignment操作符 };一般上面的函數都會有,而且是inline函數 。
A a1; //default構造函數 A a2(a1); //copy構造函數 a1 = a2; //copy assignment操作符 A a3 = a1; //copy構造函數為什么這里A a3 = a1;是copy構造函數,一個新的對象定義,就一定有有構造函數出現,不可能是copy 賦值
我們這里可以這樣理解A a3 = a1;和A a3(a1);是等價的,好了,我自己用代碼測試下。
?
?
?
?
2?測試代碼
#include <iostream>using namespace std;class A { public:A() {std::cout << "A(){}" << std::endl;}~A() {std::cout << "~A()" << std::endl;}A(const A& a) {std::cout << "A(const A&)" << std::endl;}A& operator= (const A& a) {std::cout << "A& operator=(const A& a)" << std::endl;}};int main() {A a1;A a2(a1);a1 = a2;A a3 = a1;return 0; }?
?
?
?
?
?
3 運行結果
A(){} A(const A&) A& operator=(const A& a) A(const A&) ~A() ~A() ~A()?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Effective C++学习笔记之copy构造函数和default函数和copy赋值函数(operator=)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++之智能指针和普通指针单例模式两种实
- 下一篇: C和指针之memmove函数 memcp