C++空類默認函數詳細解析
更新時間:2013年10月09日 09:06:16 作者:
如果你只是聲明一個空類,不做任何事情的話,編譯器會自動為你生成一個默認構造函數、一個拷貝默認構造函數、一個默認拷貝賦值操作符和一個默認析構函數
定義一個空的C++類,例如
class Empty
{
}
一個空的class在C++編譯器處理過后就不再為空,編譯器會自動地為我們聲明一些member function,一般編譯過去就相當于
復制代碼 代碼如下:
class Empty
{
public:
Empty(); // 缺省構造函數
Empty( const Empty& ); // 拷貝構造函數
~Empty(); // 析構函數
Empty& operator=( const Empty& ); // 賦值運算符
Empty* operator&(); // 取址運算符
const Empty* operator&() const; // 取址運算符 const
};
一般的書上好像都是前面四種:默認構造函數,拷貝構造函數,默認賦值函數以及析構函數,后面兩種其實屬于,但要需要注意的是,只有當你需要用到這些函數的時候,編譯器才會去定義它們。
如果你只是聲明一個空類,不做任何事情的話,編譯器會自動為你生成一個默認構造函數、一個拷貝默認構造函數、一個默認拷貝賦值操作符和一個默認析構函數。這些函數只有在第一次被調用時,才會別編譯器創(chuàng)建。所有這些函數都是inline和public的。
相關文章
C語言中isalnum()函數和isalpha()函數的對比使用
這篇文章主要介紹了C語言中isalnum()函數和isalpha()函數的對比使用,都可以判斷是否為字母但isalnum的判斷還包括數字,需要的朋友可以參考下2015-08-08