int StrC::PI(const CPoint point)
{
  
}
上面这是一个函数,const 在这里起什么用,有必要用它吗?

解决方案 »

  1.   

    有用。防止你一不小心修改了point 这个参数值。。
      

  2.   

    这样用没什么意义,也没有必要,只不过就是在函数体中不能修改point要是const CPoint*或const CPoint&就合适了
      

  3.   

    如困在函数里没必要修改CPoint的值,就把它定义成const,
    这样程序编译会进行优化,加快函数的调用.
      

  4.   

    觉得上面的CONST是多余的
    如果是CONST POINT &PT还有用
      

  5.   

    同意blackblue(跌跌撞撞),这样的确没意义;
    这样的函数声明表示;该函数被调用时,会收到传入参数的一个副本,而该副本是以常量的形式存在的,在函数执行过程中该副本不允许被修改;如果出现附值语句,会产生编译错误。我说得很详细吧^_^
      

  6.   

    这样才有意义
    int StrC::PI(const CPoint& point);
      

  7.   

    我是想说在这里加const 和不加 const 是不是完全一样呢?函数里怎么会改变point的值呢?
      

  8.   

    我认为对这个函数的调用者是没有任何意义的,
    但对这个函数本身是为了在函数内部防止误修改point的值,
    相当于函数体的一个局部常量。
      

  9.   

    >>我是想说在这里加const 和不加 const 是不是完全一样呢?函数里怎么会改变point的值呢?
    不一样
    你加了以后,就不能改变point的值了,也就是说不能把他当临时变量用了,而程序外的point是不会变的,这是一样的,若不加,由于程序拷贝了一个point在栈中,这个拷贝的point是可以被改变的,加了就不能改变了
    加了没什么意义
    只有常引用才是有意义的,为了避免参数被改变
    其实前面诸位已说得很清楚了