2021-02-02仅供自己参考:静态成员、静态成员函数

在成员变量和成员函数前加上关健字static,称为静态成员

静态成员变量:

  • 所有对象共享同一份数据。
  • 在编译阶段分配内存。
  • 类内声明,类外初始化。

静态成员函数:

  • 所有对象共享同一个函数。
  • 静态成员函数只能访问静态成员变量。

访问静态成员函数:

  • 通过对象访问
  • 通过类名访问
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;

class A
{
public:
	static void f()
	{
		//a=10;静态成员函数不能访问非静态成员变量
		//因为无法区分哪个对象是a的属性,因为a要属于特定的对象
		b = 10;//静态成员函数可以访问静态成员变量 
		       //b的数据是共享的,不用知道是哪个特定的对象在调用
		cout << "静态成员函数" << endl;
	}
	int a;
	static int b;
private:
	static void f1()
	{
		cout << "私有权限的静态成员函数" << endl;
	}
};
int A::b= 1;//静态成员变量类外初始化
void t1()
{
	//通过对象访问
	A a;
	a.f();
	//通过类名访问
	A::f();
	//A::f1();属于私有,类外不能访问
	cout << "b=" << A::b << endl;
}

int main()
{
	t1();
	system("pause");
	return 0;
}

如果静态成员变量b在类外的初始化为

int A::b;

且静态成员函数没有给静态成员变量b赋值,那b的值为零。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值