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

使用C++類對象構造函數

編輯:C++入門知識

所謂C++類對象:一個類的所有對象對應同一個類對象,想要學好C++類對象。首先要了解C++語言的概念是非常重要的,那麼就先說一下什麼是C++語言,所謂C++語言:是一種使用非常廣泛的計算機編程語言。

在學習這一章內容前我們已經學習過了類的構造函數和析構函數的相關知識,對於普通類型的對象來說,他們之間的復制是很簡單的,自己定義的類的對象同樣是對象,誰也不能阻止我們用以下的方式進行復制,例如:

  1. include <iostream>    
  2. using namespace std;    
  3.     
  4. class Test    
  5. {    
  6. public:    
  7.     Test(int temp)    
  8.     {    
  9.         p1=temp;    
  10.     }    
  11. protected:    
  12.     int p1;    
  13.     
  14. };    
  15.     
  16. void main()    
  17. {    
  18.     Test a(99);    
  19.     Test b=a;    

普通對象和類對象同為C++類對象,他們之間的特性有相似之處也有不同之處,類對象內部存在成員變量,而普通對象是沒有的,當同樣的復制方法發生在不同的對象上的時候。那麼系統對他們進行的操作也是不一樣的,就類對象而言,相同類型的類對象是通過拷貝構造函數來完成整個復制過程的,在上面的代碼中。

  1. #include <iostream>    
  2. using namespace std;    
  3.     
  4. class Test    
  5. {    
  6. public:    
  7.     Test(int temp)    
  8.     {    
  9.         p1=temp;    
  10.     }    
  11.     Test(Test &c_t)//這裡就是自定義的拷貝構造函數    
  12.     {    
  13.         cout<<"進入copy構造函數"<<endl;    
  14.         p1=c_t.p1;//這句如果去掉就不能完成復制工作了,此句復制過程的核心語句    
  15.     }    
  16. public:    
  17.     int p1;    
  18. };    
  19.     
  20. void main()    
  21. {    
  22.     Test a(99);    
  23.     Test b=a;    
  24.     cout<<b.p1;    
  25.     cin.get();    

我們並沒有看到拷貝構造函數,同樣完成了復制工作,這又是為什麼呢?因為當一個類沒有自定義的拷貝構造函數的時候系統會自動提供一個默認的拷貝構造函數,來完成復制工作。

下面,我們為了說明情況,就普通情況而言(以上面的代碼為例),C++類對象來自己定義一個與系統默認拷貝構造函數一樣的拷貝構造函數,看看它的內部是如何工作的! 上面代碼中的Test(Test &c_t)就是我們自定義的拷貝構造函數,拷貝構造函數的名稱必須與類名稱一致,函數的形式參數是本類型的一個引用變量,且必須是引用。

  1. C與C++中標准輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制

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