C++——静态成员

静态成员:

        静态变量是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。由此看来,一个变量可由static进行再说明,并改变其原有的存储方式。对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。

        静态成员分为:静态成员变量;静态成员函数。

静态成员变量:

        1、所有对象共享一份数据;

        2、在编译阶段分配内存;

        3、类内声明,类外初始化;

        4、静态成员变量也是有访问权限的;

# include <iostream>
using namespace std;
# include <string>

class Person {
	public:
		static int A; //静态变量成员,类内声明
	private:
		static int B;//静态成员变量也是有访问权限的

};

int Person::A = 100; //类外初始化
int Person::B = 200;

void test_01() {
	Person p1;
	cout << p1.A << endl;
	Person p2;
	p2.A = 666;
	cout << p1.A << endl; // 所有对象共享同一份数据
	cout << p2.A << endl; // 所有对象共享同一份数据

	//cout << "B = " << p2.B << endl; //私有权限访问不到
}

int main() {
	test_01();
	system("pause");
	return 0;
}

静态成员函数:

        1、所有对象共享同一个函数;

        2、静态成员函数只能访问静态成员变量

        3、静态成员函数也是有访问权限的;

# include <iostream>
using namespace std;
# include <string>

class Person {
	public:
		static void func() {
			cout << "func调用" << endl;
			m_A = 100;
			//m_B = 100; //错误,不可以访问非静态成员变量
		}

		static int m_A; //静态成员变量
		int m_B; // 错误,不可访问非静态成员变量;
	private:

		//静态成员函数也是有访问权限的
		static void func2() {
			cout << "func2调用" << endl;
		}
};
int Person::m_A = 10;

void test_01() {
	Person p1;
	p1.func();
	//Person::func2(); //私有权限访问不到
}


int main() {

	test_01();

	system("pause");

	return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值