c++ const参数

来源:互联网 发布:网络电视飞鱼直播下载 编辑:程序博客网 时间:2024/05/23 22:19


void Print1(int &a)

{
std::cout << "a: " << a << std::endl;

}


void Print2(const int &a)

{
std::cout << "a: " << a << std::endl;

}

void Print3(const int a)

{
std::cout << "a: " << a << std::endl;

}


void Print4(int a) 

{
std::cout << "a: " << a << std::endl;

}



int main()
{
const int b = 5;
Print1(b); // compile error

        Print2(b); // OK

        Print3(b); // OK

        Print4(b); // OK, due to parameter duplication

}


[转]返回const值

返回const值,意思指返回的原函数里的变量的初值不能被修改,但是函数
  按值返回的这个变量被制成副本,能不能被修改就没有了意义,它可以被赋给任何
  的const或非const类型变量,完全不需要加上这个const关键字.但这只对于内部
  类型而言(因为内部类型返回的肯定是一个值,而不会返回一个变量,不会作为左
  值使用),对于用户自定义类型,返回值是常量是非常重要的,


  X Fuction1 () { return X(); }
  const X Fuction2 () { return X(); }
  如有上面的自定义类X,和函数Fuction1()和Fuction2(),我们进行如下操作时:
  Fuction1()=X(1); //没有问题,可以作为左值调用
  Fuction2()=X(1); //编译错误,const返回值禁止作为左值调用.因为左值
  把返回值作为变量会修改其返回值,const声明禁止这种修改.

原创粉丝点击