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的值。