C++空類默許函數具體解析。本站提示廣大學習愛好者:(C++空類默許函數具體解析)文章只能為提供參考,不一定能成為您想要的結果。以下是C++空類默許函數具體解析正文
界說一個空的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
};
普通的書上似乎都是後面四種:默許結構函數,拷貝結構函數,默許賦值函數和析構函數,前面兩種其實屬於,但要須要留意的是,只要當你須要用到這些函數的時刻,編譯器才會去界說它們。
假如你只是聲明一個空類,不做任何工作的話,編譯器會主動為你生成一個默許結構函數、一個拷貝默許結構函數、一個默許拷貝賦值操作符和一個默許析構函數。這些函數只要在第一次被挪用時,才會別編譯器創立。一切這些函數都是inline和public的。