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 @ 2022-07-17 11:34  MegaDataFlowers  阅读(40)  评论(0)    收藏  举报