美文网首页
引用参数

引用参数

作者: 吃柠檬的鸮 | 来源:发表于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 适配器不接受引用形参, 这种情况下也必须以指针形参声明函数。

相关文章

  • 引用参数

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

  • 方法的参数 Day0815

    值参数 引用参数 输入参数 数组参数

  • 2020-03-13

    一. 命名空间 二. 函数参数默认值 三. 引用(引用,常引用,引用作为函数的参数与返回值) 四...

  • 在某些情况下,实参与引用参数不匹配,C++将生成临时变量

    如果实参与引用参数不匹配,C++将生成临时变量。当前,仅当参数为const引用时,C++才允许这样做。如果引用参数...

  • 按值传递与按引用传递

    按值传递 -- 传递的是参数的值,即参数本身。 按引用传递 -- 传递的是指向参数的值的引用(指针),而不是参数的...

  • [Lisp] 嵌套反引用

    1. 带参数的模板 反引用(quasiquotation)是普通引用(quotation)的带参数版本,我们可以预...

  • jmeter学习(二)

    参数说明: a) 引用名称:下一个请求要引用的参数名称,如填写token,则可用${token}引用它。 b) 正...

  • php函数参数

    传递参数的几种形式 1. 按值传递参数 默认的形式 2.通过引用传递参数 通过引用可以修改数据原始值 3.默认参数...

  • C++ 指针传参两种方法

    使用引用进行函数的引用调用 : 把某一变量的地址赋给函数中的一个引用变量; 引用参数: 是用运算符& 声明参数...

  • 【JAVA基础】函数知识

    1.函数参数传递方式 虽然java通过引用操作对象,所有的对象变量都是引用,然而,java不能通过引用传递方法参数...

网友评论

      本文标题:引用参数

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