【编程】C++入门:static成员——用static修饰的成员函数,称之为静态成员函数。

本文介绍了C++中的静态成员,包括静态成员函数和静态成员变量。静态成员不归属于任何特定对象,而是属于整个类,它们在内存中只有一份。静态成员变量必须在类外初始化,且不能通过对象直接初始化。静态成员函数没有this指针,无法访问非静态成员,但非静态成员函数可以调用静态成员函数。示例代码展示了如何定义、初始化和访问静态成员。
摘要由CSDN通过智能技术生成

C++入门:static成员

用static修饰的成员函数,称之为静态成员函数
静态的成员变量一定要在类外进行初始化。
【静态的成员变量不能声明初始化列表中进行初始化。】

class Date
{
public:
	// 静态成员函数
	static int getdcount()
	{
		return _dcount;
	}

private:
	int _year;
	int _month;
	int _day;

	static int _dcount;
};

// 静态的成员变量一定要在类外进行初始化。
int Date::_dcount = 0;
// 静态成员变量初始化完成

int main()
{
	Date d;
	// 静态成员变量/函数访问方法:
	// 1.对象访问
	cout << d.getdcount() << endl;
	// 2.类名 + 作用域限定符 
	cout << Date::getdcount() << endl;

	return 0;
}
特性1-5
  1. 静态成员为所有类对象所共享,不属于某个具体的实例
  2. 静态成员变量必须在类外定义,定义时不添加static关键字
  3. 类静态成员即可用类名::静态成员或者对象.静态成员来访问
  4. 静态成员函数没有隐藏的this指针,不能访问任何非静态成员
  5. 静态成员和类的普通成员一样,也有public、protected、private3种访问级别,也可以具有返回值
【问题】
  1. 静态成员函数可以调用非静态成员函数吗?
    不可以。
  2. 非静态成员函数可以调用类的静态成员函数
    可以。
    原因:因为非静态成员需要this指针,静态成员函数内部没有this指针
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值