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

静态成员变量

型如:

static  <变量类型> <变量名>

说明:

1.静态成员变量为所有类共用一个(无论定义了多少个对象,静态成员变量的空间只有一个)

2.静态成员变量只能在类外全局变量处进行初始化。否则编译出错。

3.静态成员变量早在实例化对象前就已经分配完空间了。

静态成员函数:

型如:

static <返回值类型> <函数名>()

说明:

1.静态成员函数所有对象共有

2.作用就是为了调用静态成员变量。C++中建议只在静态成员函数中调用静态成员变量,不要调用普通成员变量

3.静态成员函数不能直接调用类内的普通成员函数,因为没有this指针。可以用过对象访问。

4.静态成员函数可以通过类名直接访问。

示例代码:

#include<iostream>
using namespace std;
class Person
{
	private:
		static int age;
		string name;
	public:
		Person(string x):name(x){}
		static void show(Person &);
		~Person(){}

};
int Person::age=25;//静态成员变量需要在类外全局处初始化
void Person::show(Person &f)
{
	cout<<"age: "<<age<<endl;
	//cout<<"name: "<<name<endl;   //错误,常成员函数没有this指针,不能直接调用普通成员变量
	cout<<"name "<<f.name<<endl;
}

int main()
{
	Person a=Person("AAAAA");
	Person b=Person("BBBBB");  
	b.show(b);
	a.show(a);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值