为了实现多个类公用一个成员变量或函数诞生了static,静态成员变量和静态成员函数。
static成员变量
格式
class A
{
public:
	static 静态成员变量类型 静态成员名;        
    }
}
- 静态成员变量必须在类外进行初始化,类内初始化会报错
class A {
private:
	static int x ;
};
int A::x = 0;
int main()
{
	A a();
	return 0;
}
-  静态成员变量是属于此类,而不属于此类的某个对象,所以这个静态成员变量只有一个,存放在静态区。 
-  因为静态变量属于整个类,所以既可以用类对象.静态变量,也可以直接用类类型::静态变量 
-  静态成员也是类的成员,受public、protected、private 访问限定符的限制 
static成员函数
格式
class A
{
public:
	static 返回值类型 函数名(参数类型1 参数1.....) ;        
    }
}
- 前四条特性与static成员变量相同 
  - 五、静态成员函数没有隐藏的this指针,所以不能调用非静态的成员。 
    - static静态成员函数不能调用非静态成员函数
- 非静态成员函数可以调用static静态成员函数
 
 
- 五、静态成员函数没有隐藏的this指针,所以不能调用非静态的成员。 
    
static练习
求1+2+3+…+n_牛客题霸_牛客网 (nowcoder.com)

 答:
class Solution {
    class Sum{
        friend int Sum_Solution(int n);
    public:    
        Sum()
        {
            tmp++;
            ret+=tmp;
        }
    };
public:
    int Sum_Solution(int n) {
        Sum S[n];
        return ret;
    }
private:  
        static int tmp;
        static int ret;
};
int Solution::tmp = 0;
int Solution::ret=0;

✨本文收录于C++语法及练习
当你喜欢一篇文章时,点赞、收藏和关注是最好的支持方式。如果你喜欢我的文章,请不要吝啬你的支持,点赞👍、收藏⭐和关注都是对我最好的鼓励。感谢你们的支持!如有问题欢迎指正!



















