C++知识点(五)数据共享与保护

1.标识符的作用域、可见性、生存期

作用域:

  • 函数原型作用域:函数声明时使用
  • 局部作用域:{}
  • 类作用域 :
  • 文件作用域
  • 命名空间作用域:using 

可见性:从内向外看,应用场景:重复的标识符的可见性

生存期:

  • 静态生存期:static
  • 动态生存期:  

2.类的静态数据成员

  • static修饰
  • 属于整个类,不属于某个对象
  • 声明在类内,定义和初始化在类外

3.类的静态成员函数

  • 用于处理静态数据成员
  • 不能知道是哪个对象调用了该函数

4.类的友元

  • friend修饰
  • 破坏数据封装和数据隐藏的机制,增加灵活性
  • 友元函数
    • 在友元函数中可以访问private和protected成员,需通过对象访问(对象的常引用做参数)
  • 友元类
    •  单向友元

 

5.共享数据的保护:常类型const

  • 常类型:
    • 常对象:定义时初始化,const 类名 对象名
    • 常成员:
      • 常数据成员
      • 常成员函数:
        • 类型说明符  函数名(参数表) const
        • 只处理常对象
        • 成员函数加const和不加const,是有区别的,在处理常对象时,编译器会自动调用常成员函数
    • 常引用:const 类型说明符 &引用名
    • 常数组:类型说明符 const 数组名[大小]
    • 常指针:

6.多文件结构

  • 类声明文件(.h)
  • 类实现文件(.cpp)
  • 类的使用文件(main()所在.cpp)
  •  

 外部变量:extern

 外部函数:调用前进行声明即可

将变量和函数限制在编译单元内: namespace

标准C++库:输入输出类、容器类和抽象数据类型、存储管理类、算法、错误处理、运行环境支持

编译预处理:

  • #include
    • #include<> 系统库文件
    • #include(.h) 自定义库文件
  • #define
    • const取代字符常量
    • inline取代宏定义
  • #undef
  • #if常量表达式...#endif
  • #if常量表达式...#else...#endif
  • #if常量表达式1...#elif常量表达式2...#endif
  • #ifdef标识符...#else...#endif
  • #ifndef标识符...#else...#endif

 

转载于:https://www.cnblogs.com/lemon333333/p/10237702.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值