C++——类——静态成员

本篇参考:C++类中的静态成员函数以及静态成员变量_c++静态成员变量_森明帮大于黑虎帮的博客-CSDN博客

一 、静态成员

1、静态成员包括:静态成员函数和静态成员变量。指在类内用static关键字声明的变量和函数。

2、静态成员在编译阶段划分储存空间,不占用具体对象空间,在程序结束时销毁释放内存。

3、静态成员是整个类共有,通过类名和对象名均能访问,不计入类所占空间。

4、静态成员变量必须类内声明,类外定义。

5、静态成员函数只能访问静态成员函数和静态成员变量。

6、静态成员变量不属于某个对象,实例化时候不计入对象所占空间。

7、静态成员可由类名或对象名引用。

#include<iostream>
using namespace std;
class MyClass {
public:
	MyClass() {
		a = 0;
		b = 10;
	}
	int a;
	static int b;
	static void func() {
		//cout << "a=" << a << endl;	//报错
		cout << "b=" << b << endl;
	}
};
int MyClass::b = 0;
void test01() {
	MyClass mclass;
	mclass.func();
    MyClass::func();
}
int main(int argc, char const **argv) {
	test01();
	system("pause");
	return 0;
}

二、静态成员函数

C++会区分两种类型的成员函数:静态成员函数和非静态成员函数。这两者之间的一个重大区别是,静态成员函数不接受隐含的 this 自变量。所以,它就无法访问自己类的非静态成员。

静态成员函数: 在类定义中,前面有static说明的成员函数称为静态成员函数。静态成员函数使用方式和静态变量一样,同样在对象没有创建前,即可通过类名调用。静态成员函数主要为了访问静态变量,但是,不能访问普通成员变量。 静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,完成对静态数据成员的封装。

  1. 静态成员函数只能访问静态成员变量,不能访问普通成员变量。

  2. 普通成员函数可访问静态成员变量、也可以访问非静态成员变量。

  3. 静态成员函数也有访问权限。

  4. 静态成员函数可由类名或对象名调用。

  5. 静态成员函数可类内定义,也可类外定义。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值