C++中,const与&修饰函数形参的可能情况有四种:
1. string str
这是最普通的传值调用,首先对原str进行一次拷贝,会调用拷贝构造函数。str可以被修改,但修改的只是复制的值,而不会影响到本身的str。
2. sring& str
这是引用, 传递过来的就是str本身,在函数里修改str的话都会修改str本身,但不会调用拷贝构造函数。
3. const string str
传值调用,str是复制的值且不能被修改,但会调用拷贝构造函数。
4. const string& str
引用传递,str不能被修改,而且也不会调用拷贝构造函数。