// 内部已经声明为 static 了
// 外部定义的时候,不需要再指定 static
// static 不能声明为 const、也不能声明为 虚函数
// 声明为 const 是承诺不修改该函数所属的对象,
// 然而, static 函数,不属于任何对象,它只与类关联
void Account::rate(double newRate)
{
interestRate = newRate;
}
// static 数据成员,必须在类定义体的外部定义(刚好一次)
// 一旦成员名出现,static 成员的定义,就在类作用域中了
// 因此,可以直接使用 私有成员函数 initRate
double Account::interestRate = initRate();
Account ac1;
Account *ac2 = &ac1;
double rate;
rate = ac1.rate();
rate = ac2->rate();
[cpp]
class Bar
{
public:
private:
// static 数据成员的类型,可以是该成员所属的类类型。
static Bar mem1;
Bar *mem2;
// 错误
Bar mem3;
}; www.2cto.com
class Screen
{
public:
Screen& clear(char = bkground);
private:
// static 数据成员,可以作为默认实参。
static const char bkground = '#';
};