zoukankan      html  css  js  c++  java
  • 24、C++中const和static的作用

    一、static

    不考虑类的情况:

    1. 隐藏。所有不加static的全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在的编译模块中使用。

    2. 默认初始化为0,包括未初始化的全局静态变量与局部静态变量,都存在全局未初始化区。

    3. 静态变量在函数内定义,始终存在,且只进行一次初始化,具有记忆性,其作用范围与局部变量相同,函数退出后仍然存在,但不能使用。

    考虑类的情况:

    1. static成员变量:只与类关联,不与类的对象关联。定义时要分配空间,不能在类声明中初始化,必须在类定义体外部初始化,初始化时不需要标示为static;可以被非static成员函数任意访问。

    2.static成员函数:不具有this指针,无法访问类对象的非static成员变量和非static成员函数; 不能被声明为const、虚函数和volatile;可以被非static成员函数任意访问

    二、const

    不考虑类的情况:

    1.const常量在定义时必须初始化,之后无法更改

    2.const形参可以接收const和非const类型的实参,例如

    考虑类的情况:

    1.const成员变量:不能在类定义外部初始化,只能通过构造函数初始化列表进行初始化,并且必须有构造函数;不同类对其const数据成员的值可以不同,所以不能在类中声明时初始化

    2.const成员函数:const对象不可以调用非const成员函数;非const对象都可以调用;不可以改变非mutable(用该关键字声明的变量可以在const成员函数中被修改)数据的值

  • 相关阅读:
    PHP微信公众号支付,JSAPI支付方法,ThinkPHP5+微信支付
    PHP微信扫码支付DEMO,thinkphp5+微信支付
    解决vue axios跨域请求发送两次问题
    解决navicat远程连接mysql很卡的问题
    GIT的工作原理和基本命令
    简单好用的网站压力测试工具
    vscode中让html中php代码高亮
    redis的安装及使用总结
    tp32-layuicms项目介绍
    vscode Vue格式化HTML标签换行问题
  • 原文地址:https://www.cnblogs.com/crbhf/p/14922465.html
Copyright © 2011-2022 走看看