C++ 拷貝函式呼叫時機
阿新 • • 發佈:2021-12-20
拷貝函式語法:
Person(const Person& p) //const來確保本體p不會被修改
{
}
拷貝建構函式呼叫時機:
1、使用一個已經建立完畢的物件來初始化一個新物件
2、值傳遞的方式給函式引數傳值
3、值方式返回局報物件
#include <iostream> using namespace std; //拷貝建構函式呼叫時機 class Person { public: Person() { cout << "Person預設建構函式呼叫" << endl; } Person(intage) { cout << "Person有參建構函式呼叫" << endl; m_Age = age; } Person(const Person& p)//const+引用 { cout << "Person拷貝建構函式呼叫" << endl; m_Age = p.m_Age; } ~Person() { cout << "Person解構函式呼叫" << endl; }int m_Age; }; //1、使用一個已經建立完畢的物件來初始化一個新物件 void test01() { Person p1(20); Person p2(p1); cout << "P2的年齡為:" << p2.m_Age << endl; } //2、值傳遞的方式給函式引數傳值 void doWork(Person p) { } void test02() { Person p; doWork(p); } //3、值方式返回局報物件 Person doWork2() { Person p1;return p1; } void test03() { Person p = doWork2(); } int main() { //test01(); //test02(); test03(); system("pause"); return 0; }