>  Q&A  >  본문

c++:举一个函数形参不能是引用的例子

这是一道习题

巴扎黑巴扎黑2765일 전745

모든 응답(3)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-17 12:06:31

    还真不容易找到这样的例子。

    不过,在肯定会修改实参内容,而这种修改又不能影响原变量的情况下,比较适合不用引用吧。

    比如:

    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 是不是不用引用更好一些?

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 12:06:31

    hibernake说的是对的,我的例子不合适

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 12:06:31

    当使用非常量引用,而实参是字面值、表达式、需要转换的不同类型的对象时。如
    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的值。

    회신하다
    0
  • 취소회신하다