Dessecting MFC 阅读笔记(三)

本文详细解析了静态成员变量及静态成员函数的概念与使用方法,包括初始化规则、访问权限及如何正确地在类外部初始化静态成员变量等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于静态成员、静态函数及其赋值

 

A 关于静态成员变量

1 静态成员变量是属于类的一部分,而不是专属于属于某个对象的。所以程序就可以在还没有任何对象的时侯就可以处理此种成员变量,但是前提是你必须首先定义它。

2 不要把static 成员变量的初始化放在构造函数中,因为构造函数可能一再被调用,而变量的初始值却只应该设定一次 ;

也不要吧static 成员变量的初始化放在头文件中,因为头文件可能会载入许多地方,因此也会引起多次初始化一个变量的问题

3 你应该在应用程序文件中,类定义以外的任何地方设定其初始值 。例如 main 之中,或全局函数中, 或任何函数之外。

4 在类定义中声明static 数据成员,但在类之外初始化static 对象的时 不可有static 关键字

5 在设定static 成员变量初始值时,不考虑其存取权限。

6 当然,也可使用对象或对象指针来引用static 成员变量,但是这容易给人造成错觉, 叫人误以为该变量是专属于该对象的

 

B关于静态成员函数

1 只要Acess Level 允许,任何函数(包括全局函数或成员函数,static 或 non-static )都可以存取static 变量,但是如果你希望在main 函数外,就存取class 的static 变量成员,则必须设计一个static 成员函数。

2 由于static 不需要借助任何对象就可以被调用执行,所以编译器不会为它暗自增加一个this 指针,也因为如此,static 成员函数无法处理类之中的的 non-static 成员变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值