成员函数、属性

成员函数、属性
1、对私有属性添加set/get方法

2、类内初始化

3、static关键字
1、static修饰类的成员
(1)每一个对象都可调用同一个类的成员,实现共享,但一定要在类外初始化。
(2)类的成员定义:也称为静态成员,属于类,不属于某个具体的对象。
(3)类的成员访问形式:①对象名.类成员名;②类名::类成员名。
注:第②种不需要先实例对象再访问,即下方示例第一条语句。
(4)使用示例:(count为static修饰的类成员)

2、static修饰类的成员函数
(1)类的成员函数定义:也称为静态成员函数,属于类。
(2)静态成员函数不能访问非静态成员变量。
原因:静态成员函数属于类,没有默认的this指针生成。
使用示例:
①正确:index为静态成员变量,编译通过。

②错误:m_num为非静态成员变量,下方代码块报错。

③main中调用方式,直接访问。

3、C/C++中static关键字的作用
(1)修饰局部变量或者局部对象,延长该变量或者对象的生命周期。
(2)修饰全部变量或者全局对象,只能在本文件访问不能在其他文件访问。
(3)修饰类的成员变量时,该变量为静态变量,属于类,被该类的所有实例化的对象共享访问;且不占用对象的空间。
(4)修饰普通函数,该函数只能在本文件访问不能在其他文件访问。
(5)修饰成员函数时,该函数为静态成员函数,属于类,不属于对象,被该类的所有实例化的对象共享访问;没有this指针,不能访问类的非静态成员。
4、什么样的情况下需要用static修饰一个类的成员或者成员函数?
(1)类的成员需要被多个对象共享时,使用static修饰。
(2)C/C++混合编程时,C的接口需要一个函数地址作为参数时,只能将类的非静态成员函数改为静态成员函数。(如: )
4、const关键字
1、const成员函数
(1)const成员函数不会修改对象的状态。
(2)const成员函数只能访问数据成员的值,而不能修改它。
2、const对象
(1)如果-个对象指定为const ,就是告诉编译器不要修改它。
(2)const对象的定义: const类名对象名(参数表)。
(3)const对象不能调用非const成员函数,只能调用const成员函数。
3、mutable关键字(一般与const配合使用)
用mutable修饰的数据成员时,即使在const对象或在const成员函数中,该数据成员都可以被修改。
4、C/C++ const关键字作用总结:
(1)const修饰普通变量:C中为只读变量,C++中为常量。
(2)C++中const可以修饰成员函数,该成员函数只能访问成员变量,不能修改,需要修改成员变量时需要加mutable修饰该成员。
(3)C++中const修饰一个对象称之为常对象,只能调用const修饰的成员函数。
注:仅对数据成员进行获取操作(如下图)时,添加const可提高代码的使用安全性。

5、空类默认生成的成员
见下图:

6、指向类成员的指针
1、指向类数据成员(属性)的指针
(1)定义:<数据类型><类名>::<指针名>
(2)赋值初始化:<数据类型><类名>::
<指针名> = &<类名>::<非静态数据成员>
(3)使用注意事项:
①指向非静态数据成员的指针在定义时必须和类相关联,在使用时须和具体的对象关联
②由于类不是运行时存在的对象,所以,在使用这类指针时,需要首先指定类的一个对象,再通过对象来引用指针所指向的成员。
2、指向类成员函数的指针
(1)定义:<数据类型>(<类名>::<指针名>)(<参数列表>)
(2)赋值初始化:
<数据类型>(<类名>::
<指针名>)(<参数列表>) = &<类名>::<非静态成员函数>
(3)使用注意事项:同上
3、总结:
(1)指向类的成员属性的指针与普通意义上的指针不一样。存放的是偏移量。
(2)用指向类员函数的指针,实现更加隐蔽的接口。
(3)使用示例:(类中有static int num变量/int num2变量/void func()函数)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值