zoukankan      html  css  js  c++  java
  • const_cast

    #include <iostream>
    using std::cout;
    using std::endl;
    void change(const int * pt, int n);
    
    int main()
    {
        int pop1=38383;
        const int pop2=2000;
        cout << "pop1,pop2: " << pop1 << ", " << pop2 << endl;
        change(&pop1,-103);
        change(&pop2,-103);
        cout << "pop1, pop2: " << pop1 << ", " << pop2 << endl;
        return 0;
    }
    
    void change(const int * pt, int n)
    {
        int *pc;
        pc=const_cast<int *>(pt);
        *pc+=n;
    }

    const_cast<type-name> (expression)

    type-name必须为指针或应用,而且除了const或volatile特征可以不同外,type_name和expression的类型必须相同。

    提供该运算符的原因是,有时候可能需要这样一个值,他在大多数时候是常量,而有时又是可以修改的。在这种情况下,可以将这个值声明为const,并在需要修改它的时候,使用const_cast。但const_cast不是万能的,它可以修改指向一个值的指针,但修改const值的结果是不确定的。

  • 相关阅读:
    【排序算法汇总】
    Redis是否安装
    分布式与集群
    Redis学习
    简单算法定义见解
    KMP算法
    红黑树
    JSP与Servlet的关系
    7、创建图及图的遍历(java实现)
    6、二叉树树(java实现)
  • 原文地址:https://www.cnblogs.com/lakeone/p/3859266.html
Copyright © 2011-2022 走看看