C++类中静态变量和静态方法的注意事项

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量仅仅存储一份供全部对象共用。所以在全部对象中都能够共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还能够节省内存。

static成员的全部者是类本身和对象,可是多个对象拥有一样的静态成员。从而在定义对象时不能通过构造函数对其进行初始化; 静态成员不能在类定义里边初始化,仅仅能在class body外初始化; 静态变量依然符合public、private、protect特性; 静态成员函数没有this指针,它不能返回非静态成员,由于除了对象会调用它外,类本身也能够调用 。

一 静态变量
1、静态变量必须在外部定义和赋值
a、不能在 main() 函数中定义
这里写图片描写叙述

b、不能在类的构造函数中定义
这里写图片描写叙述

2、必需要定义静态变量,否则该变量没有内存空间(类中仅仅是申明)
这里写图片描写叙述

3、类本身能够直接调用静态变量
这里写图片描写叙述

4、静态变量依然符合public、private、protect特性
这里写图片描写叙述

二 静态方法
1、静态方法能够被类直接调用,可是同静态变量一样符合public、private、protect特性
这里写图片描写叙述

2、静态成员函数不能够调用类的非静态成员。由于静态成员函数不含this指针。
这里写图片描写叙述

3、静态成员函数不能够同一时候声明为 virtual或后缀const 函数。由于virtual就是用来区分是哪个对象调用了他,与静态方法矛盾。

而后缀const是用来修饰this指针的,静态变量中不包括this指针。
a、不能够同一时候声明为 virtual
这里写图片描写叙述

b、不能够同一时候声明为后缀const
这里写图片描写叙述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值