一个银行账户的类,利率变量成员和设置利率的函数,类型都是static,利率对于每个账户来说都是一样的。
class Account {
static double mRate;
static void setRate(const double& rt){mRate = rt};
}
Account::mRate = 0.8;
static 修饰 data members
这样的data members仅仅属于类,不属于对象,在类的外部要对其进行定义,申请一块内存来存放这样的变量。
static修饰function
这样的function和不带static关键字的function一样在内存中只有一份,不同的是这样的function没有this point隐形参数,所以它不能处理对象的非static成员变量,只能处理static成员变量。可以通过类名或者对象进行调用。
void main()
{
Account::setRate(0.8);
Account a;
a.setRate(0.9);
}