operator const double *() const;两个const各代表什么意思?到底重载的是什么运算符?还是重载的类型转换函数?是不是返回一个指向double类型的指针常量啊?期待高手的详细解答!

解决方案 »

  1.   

    重载*,返回double吧!我也是新手。哈~
      

  2.   

    前一个代表返回值是const的,也就是返回const double *类型的常量指针;后一个代表成员函数不能修改成员变量。
      

  3.   

    更正一下楼上大哥说法:
    operator *表示该函数对运算符"*"进行重载;
    前一个代表返回值const double 类型的常浮点型;
    后一个const代表该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。补充:
    常成员变量在类中的声明例如const int a;
    对常成员变量的赋值只能通过类的初始化列表完成,
    假设类名为A的话,将常成员变量a初始化为0的方法如下:
    A::A():a(0)
    {
    }
      

  4.   

    如果返回值是const的话,不是应该把const放在operator的左边吗?const double operator *() const;我觉得这样才是返回值是const 的写法啊!请指教!!!谢了
      

  5.   

    const只有在*左右的区别,其它位置都可以。
      

  6.   

    operator const double* () const
    这个是用来实现隐式转换的,前面那个const表示当需要的类型为const double*的时候实现隐式转换,后面的const表示只是一个常函数