只要在源類中的子對象沒有任何虛擬成員函數或者非靜止數據成員
看看下面的類
class Base {};
這個類中沒有任何直接或者間接的虛擬成員函數或者自定義的數據成員
int n=sizeof(Base); //n 最小必須是
此時你可能會認為存儲空間被浪費了
Base bases[
這樣做有一個很好的理由
空類的優化
C++允許優化類的存儲空間
class Derived : public Base{}; //沒有存儲空間分配給Base
對空類實行強迫方針
空類也可以在標准的模版庫中使用
void * operator new (size_t size
std::nothrow_t是一個空類
namespace std
{
struct nothrow_t {};//empty
}
nothrow_t是一個強制執行的政策
你也可以使用空類在代碼中實行強迫執行政策
struct no_log {};
int backup(); //默認備份例程
int backup(const no_log & );//更快的備份
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25563.html