程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++復制構造函數,復制構造函數

C++復制構造函數,復制構造函數

編輯:C++入門知識

C++復制構造函數,復制構造函數


在C++中,下面三種對象需要調用拷貝構造函數(有時也稱“復制構造函數”):
1) 一個對象作為函數參數,以值傳遞的方式傳入函數體;
2) 一個對象作為函數返回值,以值傳遞的方式從函數返回;
3) 一個對象用於給另外一個對象進行初始化(常稱為復制初始化);

class CExample
{
private:
int a;

public:
//構造函數
CExample(int b)
{
  a = b;
  cout<<"creat: "<<a<<endl;
}

//拷貝構造
CExample(const CExample& C)
{
  a = C.a;
  cout<<"copy"<<endl;
}
//析構函數
~CExample()
{
  cout<< "delete: "<<a<<endl;
}

     void Show ()
{
         cout<<a<<endl;
     }
};

//全局函數,傳入的是對象
void g_Fun(CExample C)
{
cout<<"test"<<endl;
}

int main()
{
CExample test(1);
//傳入對象
g_Fun(test);

return 0;
}

2 對象以值傳遞的方式從函數返回

class CExample
{
private:
int a;

public:
//構造函數
CExample(int b)
{
  a = b;
}

//拷貝構造
CExample(const CExample& C)
{
  a = C.a;
  cout<<"copy"<<endl;
}

     void Show ()
     {
         cout<<a<<endl;
     }
};

//全局函數
CExample g_Fun()
{
CExample temp(0);
return temp;
}

int main()
{
g_Fun();
return 0;
}

3)對象需要通過另外一個對象進行初始化

CExample A(100);
CExample B = A;

// CExample B(A);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved