【c++】成员变量在类中声明时给值时是什么操作?

        先说结论,只是赋缺省值。

class Date
{
private:
	// ******只是给了缺省值,并不是定义********
	// 如果没有在构造函数内对成员变量进行初始化,那缺省值就会发挥作用
	int _year = 2023;
	int _month = 1;
	int _day = 11;
};

        在类中存放的只是成员变量的声明,成员变量的定义在初始化列表。

        在声明时进行的赋值操作只是给了缺省值,让构造函数没有实现初始化操作的时候能给变量一个缺省值而不至于便为随机值。

        而在定义时进行的操作便是初始化

        普通成员变量只有一个定义的地方那便是初始化列表!!!

        例外:
        静态成员变量。

class Date
{
public:
	Date();
	// 静态成员函数只能访问静态成员变量
	static int GetCount()
	{
		return _sCount;
	}
private:
	// ******只是给了缺省值,并不是定义********(并没有缺省的效果?)
	// 如果没有在构造函数内对成员变量进行初始化,那缺省值就会发挥作用
	int _year = 2023;
	int _month = 1;
	int _day = 11;
	// 静态成员变量->声明
	static int _sCount;
};

// 静态成员变量->定义
int Date::_sCount = 0;

        1、静态成员变量仍属类中的成员变量,只是它的生命周期是在整个程序中。所以它仍然受类中访问限定符的限制,且声明需要写在类中(并带static)。

        2、静态成员变量如果是private或者protected之下,那么就需要用函数来进行间接访问。

        3、静态成员变量为类及其所有实例化对象所有,所以需要定义在类外(不需要带static,但是需要说明他是那个类的变量,所以需要带上类名::),不能出现在某一个对象的初始化列表中。

        4、访问方式:①类名::静态成员变量

                                ②对象.静态成员变量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值