在设计类时,应认真考虑成员的数据类型.贸然使用非标准或依赖于平台的数据类型将使类急剧增大,从而啬所需的内存或程序的工作量.这种做法既低效又非常糟糕.
有一个经典范例说明这一点,它使用非标准的 BOOL typedef, 而不是标准 bool 数据类型.请看这些简单的类:
typedef int BOOL;
class BadClassDesign
{
BOOL m_b1;
BOOL m_b2;
BOOL m_b3;
BOOL m_b4;
BOOL m_b5;
BOOL m_b6;
};
class GoodClassDesign
{
bool m_b1;
bool m_b2;
bool m_b3;
bool m_b4;
bool m_b5;
bool m_b6;
};
与 bool (在多数平台上通常只占1个字节)不同的是,每个 BOOL 通常都将占据4个字节.如果类成员的用途是管理
Boolean 值(true 或 false ),则实际上只需要1个字节.在典型的Intel 平台机器中,类BadClassDesign 点据 24 个字节,而类
ClassGoodDesign 公占用6个字节.节省400%!
应尽量使用正确的数据类型,使程序所需的内存量最小.
摘自<<C++ Primer Plus>>(第五版)