在學習這一章內容前我們已經學習過了類的構造函數和析構函數的相關知識,對于普通類型的對象來說,他們之間的復制是很簡單的,例如: int a = 10; int b =a; 自己定義的類的對象同樣是對象,誰也不能阻止我們用以下的方式進行復制,例如:#include <iostream> using namespace std;
class Test { public: Test(int temp) { p1=temp; } PRotected: int p1;
};
void main() { Test a(99); Test b=a; } 普通對象和類對象同為對象,他們之間的特性有相似之處也有不同之處,類對象內部存在成員變量,而普通對象是沒有的,當同樣的復制方法發生在不同的對象上的時候,那么系統對他們進行的操作也是不一樣的,就類對象而言,相同類型的類對象是通過拷貝構造函數來完成整個復制過程的,在上面的代碼中,我們并沒有看到拷貝構造函數,同樣完成了復制工作,這又是為什么呢?因為當一個類沒有自定義的拷貝構造函數的時候系統會自動提供一個默認的拷貝構造函數,來完成復制工作。