类的静态成员
1.我们通过关键词static声明静态成员。
静态成员有以下的特点:
类的静态成员与类直接相关,而不是与类的各个对象保持关联。
直接捆绑在类上,而不捆绑在对象上。所以静态成员不含this指针。
不能绑定const
2.定义静态成员
静态成员由于不属于类的任意一个对象,所以不是在创建类的对象时被定义,即静态成员不通过构造函数初始化。一般来说,不在类内部初始化静态成员。
下面以类Screen,其中的静态成员 static int height 为例来展示类外初始化的代码。
//已声明static int height
//f()为一个初始化height的函数,具体内容可以忽略。
int Screen::height=f();
3.静态成员的其他应用
静态成员独立于任何对象,所以有时能干很多普通成员不能的事情:
静态成员可以使不完全类型。
静态成员类型就是类的类型,而普通成员只能声明成所属类的指针或引用。
可以作为默认实参(非静态不能作为实参,因为它的值本身属于对象的一部分)。
class Screen{
pulbic:
//background 初始化之后会被完成。
Screen& clear(char=background);
private:
static const char background;