中文网站设计,两个男性做网站,二手商品网站怎么做,网站建设系统源码static 成员
声明为static的类成员称为类的静态成员#xff0c;用static修饰的成员变量#xff0c;称之为静态成员变量#xff1b;用 static修饰的成员函数#xff0c;称之为静态成员函数。静态成员变量一定要在类外进行初始化。
看看下面代码体会一下:
//其他类
class …static 成员
声明为static的类成员称为类的静态成员用static修饰的成员变量称之为静态成员变量用 static修饰的成员函数称之为静态成员函数。静态成员变量一定要在类外进行初始化。
看看下面代码体会一下:
//其他类
class A
{
public://默认构造A(){n;m;}//拷贝构造A(const A a){n;m;}//析构函数~A() {--m;}private://累积创建了多少个对象static int n; //注意这里不能给缺省值 加上一个static之后它就不是属于某一个对象了而是属于这个类的所有对象了是全局的了//正在使用的还有多少个对象static int m;};静态变量不会走初始化列表的因为初始化列表是属于类的是类里面的成员变量才会走初始化列表但是静态变量是属于这个类所有对象的所以说它不会走初始化列表所以说我们不能给静态变量缺省值。 还有点懵没事我们再来梳理一下 首先我们要明白缺省值是给谁用的 缺省值是给初始化列表用的。 初始化列表是对某个对象成员的初始化。 但是静态变量并不属于某个对象它是属于所有对象的。 所以静态变量不能给缺省值。
以下需要注意一下 注意静态成员函数不能访问非静态的成员 为什么不能访问非静态的成员呢 因为它没有this指针