zoukankan      html  css  js  c++  java
  • const 应用概述 [C++Primer]

    1.const 定义一个常量,常量在定义之后就不可以在修改,任何修改的尝试都会引起编译错误,所以在定义的时候必须初始化。

       const  int  nTemp = 9;

    2.在全局作用域声明的const变量是定义该对象的文件的局部变量,只存在于那个文件中,不能被其他文件访问;

       通过指定const变量为extern,就可以在整个程序中访问const对象。

       file_1.cc

       extern  const  int  bufsize = 10;

       file_2.cc

       extern  const  int  bufsize;

       for(int index = 0; index <= bufsize; index++);

     3.非const变量默认为extern。

     4.const引用,指向const对象的引用;

        为了阻止const对象被修改,将普通的引用绑定到const对象是不合法的;

        const   int i = 42;int &r = i;不合法的。

    5.const引用可以初始化为不同类型的对象或者右值,如:int i = 42; const int &r = 42;const int &r2 = 42 + i;

    6.const用在成员函数的形参表之后,可以将成员函数声明为常量,const必须出现在声明和定义中,否则会出现编译错误;

        double avg_price()const;

     7.const重载

         成员函数是否为const,也可以形成重载。

          对于函数值传递的情况,因为参数传递是通过复制实参创建一个临时变量传递进函数的,函数内只能改变临时变量,但无法改变实参。则这个时候无论加不加const对实参不会产生任何影响。但是在引用或指针传递函数调用中,因为传进去的是一个引用或指针,这样函数内部可以改变引用或指针所指向的变量,这时const 才是实实在在地保护了实参所指向的变量。因为在编译阶段编译器对调用函数的选择是根据实参进行的,所以,只有引用传递和指针传递可以用是否加const来重载。

    8. const成员函数可以改变mutable成员   

     1 class  Screen{
     2 public :
     3    do_display(std::ostream& os) const;
     4 private:
     5     mutable size_t    access_ctr;
     6 //
     7 };
     8 Screen ::do_display(std::ostream& os) const
     9 {
    10    size_t++;
    11     access_ctr++;
    12 }
  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/2995121.html
Copyright © 2011-2022 走看看