程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 溫故知新----再談構造函數(轉:不轉了)

溫故知新----再談構造函數(轉:不轉了)

編輯:關於JSP

溫故知新
                   ----再談構造函數
作者:HolyFire
如果不知道構造函數的請先看一下《由始至終----構造與析構》,看過的我就不再多言,直接轉入話題。
定義一個類的的實例的時候,可以看到這樣的形式
classA a;        //構造函數不需要參數
不需要參數的構造函數稱之為缺省構造函數。
不需要參數有兩種情況
1:構造函數沒有參數
2:構造函數有參數但可以不給出
class A{
public:
       A();          //構造函數沒有參數
       A( int I = 10 );  //構造函數的參數有缺省值,可以不用給出
};
這兩種情況都是缺省構造函數,但是由於缺省構造函數的特殊性(他是被自動調用的),編譯器無法判斷需要調用那一個,所以規定缺省構造函數只能有一個。
缺省構造函數的出現,意味著一個類型可以不依賴約束條件而被創建,就象一些細小的單元,質子,中子和電子,他們的有很大的類似性,不需要用條件來分辨他們被創建的信息。當然不需要用條件來分辨他們被創建的信息也包含了第二種情況,從流水線上生產的統一品種的產品很多都是用同一種方式的,那麼創建他們的信息基本一致,也就是所符合第二種情況,參數可以采用缺省值。
這個例子我們可以舉一個例子,我們創建一個指針類的時候,常常把他指向的內容置為空值,這很容易理解,我們需要一個指針,但是現在還不知道指向誰,等到我們要使用它的時候,不一定是知道他是否指向過別的對象,為了簡化問題,一開始就將他置空,但是有時候我們需要用參數在創建的時候就給出指向的對象,特別是在產生臨時對象的時候尤為管用,那麼,我們使用一個參數缺省值為空的缺省構造函數。
classA a( a1 );    //構造函數有參數,而參數為一個相同的類型
這樣的構造函數叫做拷貝構造函數,意思就是將類一個實例的內容復制到新創建的實例中去,為什麼要這麼做呢。我們來研究一下。
我們平時使用基本類型的時候,可以使用賦值語句,將相同類型的某個對象的內容賦給另一個對象
int a = 3;
int b;
b = a;     //這樣的話,b中就有和a一樣的內容了

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