84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
这是一道习题
还真不容易找到这样的例子。
不过,在肯定会修改实参内容,而这种修改又不能影响原变量的情况下,比较适合不用引用吧。
比如:
bool read_file_in(string path, const string &file, string &out) { path += "/" + file; return read_file(path, out); } bool write_file_in(string path, const string &file, const string &in) { path += "/" + file; return write_file(path, in); } //... string path, data; //... read_file_in(path, "in.txt", data); write_file_in(path, "out.txt", data);
在上面的例子中,第一个参数 path 是不是不用引用更好一些?
hibernake说的是对的,我的例子不合适
当使用非常量引用,而实参是字面值、表达式、需要转换的不同类型的对象时。如void swap(int &a,int &b);int a=2;double b=3.0;f(a,5);f(a+2,a);f(a,b);都不行。也不能用const int&,因为要交换a与b的值。
还真不容易找到这样的例子。
不过,在肯定会修改实参内容,而这种修改又不能影响原变量的情况下,比较适合不用引用吧。
比如:
在上面的例子中,第一个参数 path 是不是不用引用更好一些?
hibernake说的是对的,我的例子不合适
当使用非常量引用,而实参是字面值、表达式、需要转换的不同类型的对象时。如
void swap(int &a,int &b);
int a=2;
double b=3.0;
f(a,5);
f(a+2,a);
f(a,b);
都不行。也不能用const int&,因为要交换a与b的值。