定義乙個空類
classempty
;
缺省會生成以下幾個函式
1. 無參的建構函式
empty()
2. 拷貝建構函式
empty(const empty©)
3. 賦值運算子
empty& operator = (const empty©)
4. 析構函式(非虛)
~empty()
這些函式只有在第一次使用它們的時候才會生成,他們都是inline並且public的。如果想禁止生成這些函式,可以將它們定義成private函式,如果有很多類都有這種需求,那麼可以定義乙個基類,然後讓其他類繼承這個類。下面是來自boost庫的**,任何繼承了該類的類,都不能進行複製操作。也不能使用賦值運算子。
#ifndef boost_noncopyable_hpp_included#define boost_noncopyable_hpp_included
namespace
boost
~noncopyable() {}
private: //
emphasize the following members are private
noncopyable( const noncopyable&);
const noncopyable& operator=( const noncopyable&);};}
typedef noncopyable_::noncopyable noncopyable;
} //
namespace boost
#endif
//boost_noncopyable_hpp_included
乙個空類會生成哪些預設函式
定義乙個空類 class empty 缺省會生成以下幾個函式 1.無參的建構函式 empty 2.拷貝建構函式 empty const empty 3.賦值運算子 empty operator const empty 4.析構函式 非虛 empty 這些函式只有在第一次使用它們的時候才會生成,他們都...
乙個C 空類包含哪些成員函式(運算子)
又是乙個在實習面試遇到的題目,自己還是太年輕了,沒有看看面經,這裡也記錄一下 定義乙個c 空類 class empty 執行過後,編譯器會自動地為我們宣告一些成員函式 class empty 一般的書上好像都是前面四種 預設建構函式,拷貝建構函式,預設賦值函式以及析構函式,後面兩種其實屬於過載運算子...
空類的sizeof,有乙個虛函式的類的sizeof
題目 二 執行下面的 輸出是什麼?class a class b b class c virtual c int tmain int argc,tchar argv 答案是1,1,4 class a 是乙個空型別,它的例項不包含任何資訊,本來求 sizeof 應該是0 但當我們宣告該型別的例項的時候...