c ++ const类引用?

时间:2015-10-18 05:16:11

标签: c++ class reference const

我长期搜索谷歌,但没有得到与我的问题有关的任何内容。这是详细信息。

问:

void myfunc(const myclass& para_ins);
int main(){...
    myclass ins;
    myfunc(ins);
...}

如果我传入一个类似于上面的类的函数,那么const参数实际上对这里的ins做了什么?由于它在这里使用引用,我不认为它会复制ins并使其中的每个成员都不可更改,所以它实际上是否将原始类更改为const?如果是这样,如果有一个多线程程序超过2个线程同时操作ins怎么办?如果没有,这里究竟发生了什么?

1 个答案:

答案 0 :(得分:0)

  

如果我传入一个类似于上面的类的函数,const参数实际上对这里的ins做了什么?

当一个函数声明一个参数为const&时,它承诺它不会改变对象,也不会调用该对象的任何非const成员函数。

  

由于它在这里使用引用,我不认为它会复制ins并使其中的每个成员都不可更改

这是正确的。

  

它实际上是否将原始类更改为const?

不,它没有。如果调用函数中的原始对象不是调用函数中的const对象,则仍可以在调用函数中修改它。