static类型的数据及函数
static data members:在所有实例中只存在一份,而non-static data members有几个实例,就会产生多少份。
举例:银行会拥有很多客户,每个客户都是一个个实例,他们的一般数据都是自己有一份,但是每天的利率都是一样的,可以声明为static。
static member functions:只能处理static data members。
class Account {
public:
static double m_rate; //类在申明时,是不分配内存空间的,它类似于一个结构类型
static void set_rate(const double& x) {
m_rate = x; } //静态函数不存在this这个参数
};
double Account::m_rate = 8.0; //获得m_rate的定义,获得系统的内存才能是定义。
int main() {
//调用static函数的方式有二:
Account::set_rate(5.0); //通过class name调用
Account a;
a.set_rate(7.0); //通过object调用
}
将ctors放在private里,单例模式
诉求:只能产生一个对象。
class A {
public:
static