声明静态成员
在成员的声明前加static。可以是public或private的。
注意:静态成员函数:①非const②不能显(隐)式使用this指针
定义静态成员
一般来说。我们必须在类的外部定义和初始化静态成员。
静态成员定义在任何函数之外,故它存在于整个生命周期。
在类内初始化的情况:静态成员提供const整数类型的类内初始值。
注意:若静态成员仅仅是为了做字面值常量的替换,可以在类外不做定义。否则,一般在类外还需再定义一次(例如需要该const变量做引用绑定的变量或指针指向的变量)。
使用静态成员
- 通过类使用。
r = Account::rate()//Account是一个类
- 通过对象
r = ac1.rate() //ac1为对象或引用
r = ac2->rate() //ac2为指向类的指针
- 直接使用
class Account{
public:
void cal(){amount+= amount*interest}
private:
static double interest;
}
直接访问静态成员
静态成员的特殊应用场景
- 对于不完全类型的数据成员可以为静态的
- 默认实参可以为静态的