对象特性-----拷贝构造函数的调用
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                对象特性-----拷贝构造函数的调用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                C++中拷貝構(gòu)造函數(shù)調(diào)用通常三種情況:
****使用一個已經(jīng)創(chuàng)建完畢的對象來初始化一個新對象
****值傳遞的方式給函數(shù)參數(shù)傳值
****以值方式返回局部對象
#include<iostream>
using namespace std;class Person 
{
public:Person()  //無參(默認)構(gòu)造函數(shù){cout << "Person無參構(gòu)造函數(shù)的調(diào)用" << endl;}Person(int age){cout << "Person有參構(gòu)造函數(shù)的調(diào)用" << endl;m_age = age;}Person(const Person& p){cout << "Person拷貝函數(shù)的調(diào)用" << endl;m_age = p.m_age;}~Person()       {cout << "Person析構(gòu)函數(shù)的調(diào)用" << endl;}int m_age;
};void test01()
{//使用一個已經(jīng)創(chuàng)建完畢的對象來初始化一個新對象Person p1(18);Person p2(p1);cout << "p2的年齡: " << p2.m_age << endl;
}void DoWork01(Person p)
{//當DoWork在test02中被調(diào)用的時候 相當于進行了一次值傳遞,就把p2拷貝了一份到DoWork的參數(shù)中//因此就算DoWork函數(shù)中的p.age = 1000;在test中的p2也不會改變
}void test02()
{//值傳遞的方式給函數(shù)參數(shù)傳值Person p2;DoWork01(p2);
}Person DoWork02()
{Person p3;return p3;//先調(diào)用無參(默認構(gòu)造),然后返回的Person類型的值被p接收,進行了一次拷貝操作
}void test03()
{//以值方式返回局部對象Person p = DoWork02();
}int main()
{/*test01();test02();*/test03();system("pause");return 0;
}Sometimes a little discomfort in the beginning can save a whole lot of pain down the road.
奧里給!!!
總結(jié)
以上是生活随笔為你收集整理的对象特性-----拷贝构造函数的调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 对象特性-构造函数和析构函数
- 下一篇: 天津女生想学学咏春拳,看电影里说咏春是女
