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值的结果是不确定的。

  • 相关阅读:
    爬虫基础 2.1 http原理
    爬虫基础 2.1 http原理
    3.29上午
    3.28
    3.27下午
    3.27上午
    3.24上午
    3.23下午
    3.23上午
    3.22上午
  • 原文地址:https://www.cnblogs.com/lakeone/p/3859266.html
Copyright © 2011-2022 走看看