C++关键点总结系列-4

静态成员、友元和常类型

静态成员

静态成员数据成员 用static声明

被该类所有对象共享,静态数据成员具有静态生存期

必须在类外定义和初始化,用::指明所属的类,不能用构造函数初始化。

类外引用:  可通过  类名::静态成员数据  或   对象.静态成员数据

公共静态数据成员——可被类外部访问

私有和保护静态数据成员——只能类内访问

 

初始化      数据类型类名::静态数据成员=初值;

 

静态成员函数 属于整个类,不属于类的任何对象  处理静态数据成员(最好不访问非静态成员)

无this指针

调用:  类名::静态成员函数

访问非静态成员,要用对象

 

私有或保护型的静态成员数据,只能在被类内的静态成员函数或成员函数访问;

公有静态成员数据:可在类外用  类名::静态成员   或 对象.静态成员  访问


 

友元

类的友元         C++提供的一种破坏数据封装和数据隐藏的机制。

友元可以是函数、类、模块

 

1.友元函数    增加灵活性   必须   对象名.成员

       类声明中friend修饰的非成员函数(不是类里的,所以类外定义时没有类名::),在其函数体中能够通过对象名访问私有和保护成员。


 2.友元类   classB{

                                         friendclass A; //A 所有成员函数均为B的友元函数

                                          //     A    的成员可以访问B的私有成员

}

友元关系不可以被继承。

友元关系是单向的。

友元关系不能传递。

    

常类型      

常类型:    不能更新

常对象:  const  类名  对象名   

类名 const 对象名        必须初始化,不能被更新

                                只能调用常成员函数,可访问常数据成员,但不可修改

 

常成员:  const修饰   

可被常或非常成员函数引用  常数据成员  const 类型 数据成员(变量名)

可以引用常或非常数据成员  常函数成员   类型 函数名(参数表)const

常数据成员不能在构造函数中初始化,常成员函数不能调用非常成员函数

数据成员

普通成员函数

const成员函数

普通数据成员

可引用,也可以改变值

可引用,但不可改变值

const数据成员

可引用,但不可改变值

可引用,但不可改变值

const对象

不允许

可引用,但不可改变值

 

常引用:  const 类型 &引用名    被引用对象不能更新

•   经常使用常指针和常引用做函数参数。既能保证数据安全,使数据不能被随意修改,在调用函数时又不必建立实参的拷贝,可提高程序运行效率。

常数组:   类型 const 数组名[大小]   数组元素不能更新

常指针:   指向常量的指针

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值