请问:类声明中这两句重载运算符的声明代码中的const各代表什么含义?
operator const double *() const;
const Position& operator+=(const Position& positionSrc);
特别是第一句中的第一个const,实在搞不懂什么意思?急盼!

解决方案 »

  1.   

    比如,const double* p = new double[5];
    那么这几个double的内存空间,是不可以被修改的。编译器会阻止你修改内存的语法出现,实际上改了就改了。
      

  2.   

    能再详细点吗?最好把上面的那几个const都说明下什么用法,呵呵,比如,const函数,const引用作为参数,const引用作为函数返回值等等!可operator const double *() const;中,const夹在operator和double *()中间是什么意思????????
    谢谢!
      

  3.   


    能再详细点吗?最好把上面的那几个const都说明下什么用法,呵呵,比如,const函数,const引用作为参数,const引用作为函数返回值等等!可operator const double *() const;中,const夹在operator和double *()中间是什么意思???????? 
    谢谢!
      

  4.   

    仅仅记住这一点就可以了:const在 * 号的左边 那么这个指针是不可以修改的,也就是不能修改该指针的指向,但指针指向的内存地址里的内容还是可以修改的。
    const在* 号右边 则指向的内存地址的内容是不可以修改的,但该指针的指向可以改动
      

  5.   

    double y1 = 0 ;
    double y2 = 0 ;
    const double& fun1(int x)
    {
    y1 = x ;
    return y1 ;
    } double& fun2(int x)
    {
    y2 = x ;
    return y2 ;
    }
    void CEx0625Dlg::OnButton4() 
    {
    const double& z1 = fun1(3);
    double& z2 = fun2(3);
    }
      

  6.   

    double& z1 = fun1(3);
    :\test\Ex0625\Ex0625Dlg.cpp(255) : error C2440: 'initializing' : cannot convert from 'const double' to 'double &'
      

  7.   

    const Position& positionSrc
    这个const表示,=过程中,不能修改positionSrc的值
      

  8.   

    非常谢谢各位!不过我还是有点不明白,也许菜鸟都这样:
    operator const double *() const; 
    这句代码表示的是重载的什么运算符?*?,前面加上const double关键字后是个什么样的*号?其实还是为什么又是常量,又是双精度的符号是什么东西?我看了好几本c++书上都没有这么用重载运算符的!
    大家帮帮我这个新手菜鸟吧!感激!!!
      

  9.   

    operator const double *() const; 
    --
    const double *
    就像CString类的
    operator LPCTSTR() const;一样
    --------- CString str = "str";
    const char * pszStr = (LPCTSTR)str;
      

  10.   

    double y1 = 0 ; 
    double y2 = 0 ; 
    const double& fun1(int x) 

    y1 = x ; 
    return y1 ; 
    } double& fun2(int x) 

    y2 = x ; 
    return y2 ; 

    void CEx0625Dlg::OnButton4() 

    const double& z1 = fun1(3); 
    double& z2 = fun2(3); 
    }