C++ 类的特殊成员

静态成员 static

  • static修饰局部变量 局部变量的生命周期与整个程序的执行期相同,使用范围在局部
  • static修饰全局变量 生命周期与整个程序的执行期相同,适用范围仅限于单文件
  • static修饰普通的函数 这个函数只能在本文件被使用,其他文件是不可见的
  • 类中的数据成员用static修饰
    类的静态数据成员为其所用对象共享,不管有多少对象,类中这个静态数据成员只有一份存在于内存中
    初始化方式:
static int m;
int CA::m=0;

类中的静态数据初始化,静态成员不属于对象,无法通过对象的操作进行初始化,它是属于类的,初始化的时候不管公有私有都在类外进行
类中的静态数据成员,可以被普通函数访问

  • 类中的成员函数用static修饰,静态成员函数不属于任何对象只属于类
    静态成员函数在类外定义,因为它不属于对象,多以在这个函数中只能操作类的静态数据和静态函数

常量成员:
类中的常量成员分为两种:常量数据成员,常量函数成员

const int a;//类的常量数据
void add() const;//类的常量函数成员,const必须写在函数的后面

不能对自身的变量进行修改,这是常量函数的特性
只要是this所指的所指的所有数据,受语法的限定,在这个函数里面都不能被修改
除此之外的形参数据,零食变量,不属于this指针指的数据都可以改
优势:

  • 根据语法可以帮助我们来防止数据被误修改(写get接口时加const)
  • 当对象被说明为常量对象时,只能调用常量成员函数

友元:类的特点是封装,友元是C++为用户提供的打破这种封装(数据隐藏)的分类

友元:分为两种1.友元函数,2.友元类
1.友元函数
友元函数不是对象的成员,不管扎起哪里定义,但是这个函数有权调用类的所有成员(不管是私有还是保护)

friend void a(CA & srcA);//友元函数的声明
void a(CA &srcA)//友元函数定义
{
	srcA.a=10;
}//友元即使在类中定义也不属于类

2.友元类
类B为类A的友元类
类B与类A时两个类,友元类B类必须在类外说明,B类所有成员函数都有权访问A类的所有成员

friend class CB//友元类声明
{
};

友元的三个特点

  • 单方向
  • 不传递
  • 不继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值