C++:静态成员

静态成员涉及到的关键字尾static

静态成员变量要在类外初始化 去掉static关键字+类型+类名::+变量名

静态成员变量不属于任何对象 所有对象共享一份

静态成员可以不通过对象直接访问 类名::+成员名

静态成员依旧受访问修饰符的约束

静态成员函数不允许使用非静态成员 静态成员函数没有this指针

cpp 复制代码
#include<iostream>
using namespace std;


class AA
{
public:
	static int a;
	int b;
public:
	void Show()
	{
		cout << a << endl;
	}
	void SS()
	{
		a = 200;
	}

	static void ABC();
	
};

int AA::a=100;//不赋值默认为0

void AA::ABC()
{
	//cout << a << " " << b << endl;不能用b
	cout << "aa" << endl;
}


int main()
{

	AA aa;
	aa.SS();
	aa.Show();
	cout << sizeof(aa) << endl;//静态成员变量属于类,不属于某个具体的对象,即使创建多个对象,也只为静态成员变量分配一份内存

	AA bb;
	bb.a = 10;
	aa.Show();

	cout << AA::a << endl;
	//cout << AA::b << endl;//不行


	AA::ABC();
	aa.ABC();
	return 0;
}
相关推荐
Wang's Blog3 小时前
Go-Zero项目开发4: 用户服务搜索、详情与统一错误处理
开发语言·golang
我星期八休息3 小时前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
梅雅达编程笔记4 小时前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
Mr__Miss4 小时前
Java泛型完全指南:从入门到精通
java·开发语言·python
赵庆明老师4 小时前
Vben精讲:14-Vben远程加载语言包
开发语言·vben
jinyishu_5 小时前
模拟实现 C++ 栈和队列——从适配器模式看懂 STL 容器之美
java·c++·适配器模式
hehelm5 小时前
AI大模型接入SDK—通用模块设计
linux·开发语言·c++
梅雅达编程笔记6 小时前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas
行思理6 小时前
微信支付“商家转账用户确认模式”,新手教程
java·开发语言·微信
麻瓜老宋7 小时前
AI开发C语言应用按步走,表达式计算器calc的第一步,中缀表达式词法分析
c语言·开发语言·atomcode