1. 程式人生 > 其它 >C++ 拷貝函式呼叫時機

C++ 拷貝函式呼叫時機

拷貝函式語法:

Person(const Person& p) //const來確保本體p不會被修改
{
}

拷貝建構函式呼叫時機:

1、使用一個已經建立完畢的物件來初始化一個新物件

2、值傳遞的方式給函式引數傳值

3、值方式返回局報物件

#include <iostream>
using namespace std;

//拷貝建構函式呼叫時機


class Person
{
public:
    Person()
    {
        cout << "Person預設建構函式呼叫" << endl;
    }

    Person(int
age) { 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; }