C++静态成员变量和静态成员函数

静态成员变量:
// //所有对象共享同一份数据
在编译阶段分配内存空间
// //在类内声明,在类外初始化

静态成员函数:
//所有对象共享同一个函数
//静态成员函数只可以访问到静态成员变量

点击查看代码
//#include<iostream>
//using namespace std;
////静态成员变量
//class Person
//{
//public:
//	static int m_A;//类内声明
//	//静态变量也是有访问权限的
//private:
//	static int m_B;
//};
//int Person::m_A = 190;//类外初始化
//int Person::m_B = 191;
//void test01()
//{
//	Person p1;
//	cout << p1.m_A << endl;
//	Person p2;
//	p2.m_A = 191;
//	cout << p1.m_A << endl;
//	//所有对象共享同一份数据
//}
//void test02()
//{
//	//静态变量不属于某个对象 因为所有对象都共享同一份
//	// 
//	//所以说 可以通过类名进行访问 也可以通过对象进行访问
//	/*Person p1;
//	cout << p1.m_A << endl;*/
//	cout << Person::m_A << endl;
//	cout << Person::m_B << endl;//不可以在类外访问私有的静态成员变量
//}
//int main()
//{
//	test02();
//	//所有对象共享同一份数据
//	//在编译阶段分配内存空间
//	//在类内声明,在类外初始化
//
//	return 0;
//}











//静态成员函数
#include<iostream>
using namespace std;

class Person
{
public:
	static void func()
	{
		m_A = 100;//共享的
		//静态成员函数是可以访问静态成员变量的
		//m_B = 191;//无法区分是哪一个变量的m_B属性
		//静态成员函数是不可以访问非静态成员变量的
		cout << "Func" << endl;
	}
	static int m_A;
	int m_B;
private:
	//静态成员函数也是有访问权限的
	static void funcc()
	{
		cout << "Funcc" << endl;
	}
};
int Person::m_A = 190;
//所有对象共享同一个函数
//静态成员函数只可以访问到静态成员变量
void test01()
{
	//1
	Person p1;
	p1.func();
	//2
	Person::func();
	//在类外不可以访问私有的静态成员函数
	//Person::funcc();
	//Person p2;
	//p2.funcc();
}
int main()
{
	test01();
	system("pause");
	return 0;
}
posted @   MegaDataFlowers  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示