【C++ Primer 第七章】 类的静态成员

有的时候类需要它的一些成员与类本身直接相关,而不是与类的各个对象保持关联。

声明静态成员

我们通过在成员的声明之前加上关键字static使得其与类关联在一起,和其他成员一样,静态成员可以使public得或private的。静态数据成员的类型可以使常量、引用、指针、类类型等

举个例子,我们定义一个类,用它表示银行的账户记录:

 1 class Account{
 2 
 3 public:
 4     void calculate() {amount+=amount*interestRate;}
 5     static double rate() {return interestRate;}
 6     static void rate(double);
 7 private:
 8     std::string owner;
 9     double amount;
10     static double interestRate;
11     static double initRate();
12 };

类的静态成员存在于任何对象之外,对象中不包含任何与静态数据成员有关的数据。因此,每个Account对象将包含两个数据成员:owner和amount。只存在一个interestRate对象而且它被所有所有Account对象共享。

类似的,静态成员函数也不与任何对象绑定在一起,它们不包含this指针。作为结果,静态成员函数不能声明成const的,而且我们也不能在static函数体内使用this指针,这一限制既适用于this的显式使用,也对调用非静态成员的隐式使用有效。

使用类的静态成员

猜你喜欢

转载自www.cnblogs.com/sunbines/p/8907069.html