c++ class总结-2.静态成员变量与静态成员函数

时间:2024-01-25 10:16:10

静态成员变量不专属于某一个类对象,可以通过类或者类对象进行访问。
静态成员变量处于全局区。

静态成员函数也是相似的,可以通过类或者类对象进行访问。
静态成员函数只能访问静态变量,不能访问非静态变量。
m_salary 非静态变量,则:

static void get_salary() { cout << "static func: " << m_salary << endl; }

会报错。

完整demo如下:

#include<iostream>
using namespace std;
class Person
{
public:
	static int m_age;
	int m_salary=10;
	static void get_age() { cout <<"static func: "<< m_age << endl; }
	//static void get_salary() { cout << "static func: " << m_salary << endl; }

};

int Person::m_age = 10;

int main()
{

	Person p;
	cout << "static var: " << p.m_age << endl;	
	cout << "static var: " << Person::m_age<< endl;
	p.get_age() ;
	Person::get_age();	
	return 0;
}

//static var: 10
//static var: 10
//static func: 10
//static func: 10