美文网首页
引用参数

引用参数

作者: 吃柠檬的鸮 | 来源:发表于2019-05-17 23:14 被阅读0次

    所有按引用传递的参数必须加上const。
    定义: 在C语言中,如果函数需要修改变量的值, 形参( parameter) 必须为指针,如

    int foo(int *pval);
    

    在C++中,函数还可以声明引用形参:

    int foo(int &val);
    

    优点: 定义形参为引用避免了像 (*pval)++ 这样丑陋的代码,像拷贝构造函数这样的应用也是必需的,而且不像指针那样不接受空指针 NULL
    缺点: 容易引起误解,因为引用在语法上是值却拥有指针的语义。

    结论:
    函数形参表中,所有引用必须是const:

    void Foo(const string &in, string *out);
    

    事实上这是一个硬性约定:输入参数为值或常数引用,输出参数为指针;输入参数可以是常数指针,但不能使用非常数引用形参。
    在强调参数不是拷贝而来, 在对象生命期内必须一直存在时可以使用常数指针, 最好将这些在注释中详细说明。 bind2ndmem_fun等 STL 适配器不接受引用形参, 这种情况下也必须以指针形参声明函数。

    相关文章

      网友评论

          本文标题:引用参数

          本文链接:https://www.haomeiwen.com/subject/zqoaaqtx.html