博客
关于我
C++中的auto与static用法
阅读量:311 次
发布时间:2019-03-03

本文共 872 字,大约阅读时间需要 2 分钟。

C++中的静态修饰符

静态修饰符(static)在C++中具有多种用途,主要用于控制变量和函数的链接性和存储持续性。本文将从变量的链接性、函数的链接性以及类成员函数的特殊性等方面详细探讨static的应用。

变量的链接性

静态修饰符用于控制变量的链接性,具体表现为:

  • 外部链接静态变量:未被static修饰的全局变量具有外部链接性,可以被其他文件访问。
    int globalValue = 100; // 外部链接静态变量
  • 内部链接静态变量:在同一文件中定义并用static修饰的变量具有内部链接性,只能在该文件内访问。
    static int fileValue = 200; // 内部链接静态变量
  • 无链接静态变量:在函数或代码块内定义并用static修饰的变量具有无链接性,只能在该函数或代码块内访问。
    int main() {    static int internalValue = 300; // 无链接静态变量}
  • 函数的链接性

    静态修饰符还可用于修饰函数,控制其链接性:

  • 静态函数的内部链接性:在同一文件中定义并用static修饰的函数具有内部链接性,只能在该文件内调用。
    static void function1() {    // 函数体}
  • 静态函数的覆盖作用:如果在多个文件中定义了相同名称的函数,static修饰的函数在该文件中具有优先权,覆盖外部定义。
  • 类成员函数的特殊性

    静态修饰符在类成员函数中的应用有特殊之处:

  • 静态成员函数的调用方式:静态成员函数可以通过类名直接调用,适用于不需要对象的场景。
    static int num() {    return num_string; // num_string必须是静态成员变量}
  • 静态成员函数的访问限制:静态成员函数不能通过对象指针(this)引用调用,适用于不依赖于对象状态的函数。
  • 示例总结

    通过以上示例可以清晰地看到,static修饰符在变量和函数中的应用不仅影响其存储持续性,还显著影响其在程序中的访问范围。理解这些特性有助于编写更高效、更安全的C++代码。

    转载地址:http://ktlm.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
    查看>>
    Objective-C实现calloc函数功能(附完整源码)
    查看>>
    Objective-C实现canny边缘检测算法(附完整源码)
    查看>>
    Objective-C实现cartesianProduct笛卡尔乘积算法(附完整源码)
    查看>>
    Objective-C实现check strong password检查密码强度算法(附完整源码)
    查看>>
    Objective-C实现chudnovsky algorithm楚德诺夫斯基算法(附完整源码)
    查看>>
    Objective-C实现CIC滤波器(附完整源码)
    查看>>
    Objective-C实现circle sort圆形排序算法(附完整源码)
    查看>>
    Objective-C实现CircularQueue循环队列算法(附完整源码)
    查看>>
    Objective-C实现clearBit清除位算法(附完整源码)
    查看>>
    Objective-C实现climbStairs爬楼梯问题算法(附完整源码)
    查看>>
    Objective-C实现cocktail shaker sort鸡尾酒排序算法(附完整源码)
    查看>>
    Objective-C实现cocktailShakerSort鸡尾酒排序算法(附完整源码)
    查看>>
    Objective-C实现CoinChange硬币兑换问题算法(附完整源码)
    查看>>
    Objective-C实现collatz sequence考拉兹序列算法(附完整源码)
    查看>>
    Objective-C实现Collatz 序列算法(附完整源码)
    查看>>
    Objective-C实现comb sort梳状排序算法(附完整源码)
    查看>>
    Objective-C实现combinationSum组合和算法(附完整源码)
    查看>>
    Objective-C实现combinations排列组合算法(附完整源码)
    查看>>
    Objective-C实现combine With Repetitions结合重复算法(附完整源码)
    查看>>