zoukankan      html  css  js  c++  java
  • C++ 之 const 随笔记

     const关键字,相信对C语言有所了解的同学都应该知道他的作用:1.修饰常量,2.修饰指针,3.修饰函数

    1.修饰常量

    const修饰后的变量被定义为常量

    2.修饰指针

    当用const修饰指针的时候,你可以用const关键字 标明 指针所指内容或者真正本身是常量! 这里有点绕,就用经典的例子举例吧!

    char greeting[] = "hello";

    char*p = greeting;

    const char* p = greeting;  //表示指向是常量

    char* const p = greeting; // 指针自身是常量。

    const char* const p = greeting;

    这里有一个规则可以遵循,const 在*的右边表示 指针是常量, 在*左边表示指针所指物是常量,

    当然还有种写法是:

    const char *   与  char const *  的写法是完全一样的含义。

    3.修饰函数

    3.1 修饰函数的返回值

      当const修饰函数的返回值时,表明此函数返回的内容 是不可修改的!

      这是一个非常好的习惯或者是行为,可以降低使用者使用返回值错误导致的意外(安全性)。

      另外如果是const 指针的话效率也比较高,比如返回值是一个对象,此处将不进行副本操作,避免了对象的副本拷贝构造,且外部不能修改次对象内容!

    3.2 修饰函数参数

      const 修饰参数时,首先表面参数是只读内容!

      涉及到了值传递和引用传递的概念,同样是一个效率问题,当应用传递+const修饰,弥补了安全性的缺陷!

    3.3 修饰函数本身

      const成员函数 代表着其不可以更改对象内任何non-static成员变量!   当然可以修改static成员变量--注意!!

      冷门关键字:mutable!!  mutable 修饰的成员变量,可以被const成员函数修改!!!!!

      const 成员函数与非const成员函数之间相互调用一定要慎重!!!

  • 相关阅读:
    mas_makeConstraints && mas_remakeConstraints && mas_updateConstraints 用法与注意事项
    iOS特性一 关闭系统日志打印
    React-Native -课后练习
    RN 项目导入WebStorm 组件没有依赖
    React-Native需要css和布局-20160902
    方式 隐藏导航栏
    svn status状态
    spring整合redis
    maven编译跳过TEST
    linux自动登录脚本expect
  • 原文地址:https://www.cnblogs.com/gaozhichao/p/5286805.html
Copyright © 2011-2022 走看看