问题标签 [reference-parameters]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
37410 浏览

c# - C# 属性和 ref 参数,为什么不加糖?

我在使用 C# 时遇到了这个错误消息

属性或索引器不能作为 out 或 ref 参数传递

我知道是什么原因造成的,并快速解决了创建正确类型的局部变量,使用它作为out/ref参数调用函数,然后将其分配回属性:

变成

显然,如果属性不支持在当前上下文中获取和设置,这将失败。

为什么 C# 不为我这样做?


我能想到这可能会导致问题的唯一情况是:

  • 穿线
  • 例外

对于线程,转换会影响写入发生的时间(在函数调用之后与函数调用中),但我宁愿怀疑任何依赖于此的代码在中断时都会得到很少的同情。

对于例外情况,关注点是;如果函数分配给几个ref参数之一而不是 throws 会发生什么?任何微不足道的解决方案都会导致分配所有参数或不分配参数,什么时候应该分配,有些不应该分配。同样,我不认为这会被支持使用该语言。


注意:我了解生成此错误消息的机制。我正在寻找的是为什么 C# 不会自动实现微不足道的解决方法的基本原理。

0 投票
8 回答
85356 浏览

c++ - 如何在 C++ 中使用引用参数?

我试图了解如何使用参考参数。我的文本中有几个例子,但是它们太复杂了,我无法理解为什么以及如何使用它们。

您要如何以及为什么要使用参考?如果您没有将参数设置为引用,而是将其&关闭,会发生什么?

例如,这些功能之间有什么区别:

我知道使用引用变量是为了更改正式->引用,然后允许双向交换参数。但是,这是我的知识范围,更具体的例子会有很大帮助。

0 投票
2 回答
1265 浏览

c++ - 动态初始化对象

我有一个名为 player 的向量和一个名为 Player 的类。我想做的是写:

所以我希望能够循环创建玩家。但是我看到一条错误消息说“没有调用 Player::Player 的匹配函数...”

然后我将其更改为:

这是我的播放器定义:

我只是想了解这些定义之间的区别。这是将对象传递给对象构造函数的正确方法吗?

注意:这些不是我的实际类定义。我只是想通过编码学习一些关于 C++ 中面向对象编程的知识。我的意思是我知道武器可以在 Player 中初始化 :)

0 投票
3 回答
3485 浏览

c# - 为什么我不能使用 Type.InvokeMember 检索类型 out 或 ref 的参数值?

一个很长的标题,但我希望它是具体的。标题确实是个问题。即使InvokeMember正在调用的方法有一个out参数并且正在为该参数分配一个值,我也无法获取该值。这是我最初使用的代码:

我改变了它,现在使它按预期工作,但我不知道为什么:

0 投票
1 回答
2226 浏览

java - 如何将 wsa 引用参数添加到 cxf 客户端调用?

我了解如何简单地将“标准”ws 寻址标头添加到 cxf 客户端调用:

但我不明白如何添加 wsa 引用参数,以便消息的肥皂标题如下所示:

如何在 cxf 客户端调用中添加此标头?

亲切的问候,土工

0 投票
2 回答
399 浏览

c++ - 使用未声明的标识符“角度”?

我正在制作一个将直角坐标转换为极坐标的程序,每当我运行该程序时,它都会告诉我“角度”是未声明的,即使我确信我已经声明了它。我也知道该程序没有返回任何内容,我只想现在能够运行它。

0 投票
0 回答
62 浏览

c++ - 参考参数地址自动未通过

我对引用参数有以下问题:当我们有一个带有引用参数的函数时,编译器将自动传递给该函数,即调用它的任何参数的地址。示例(带对象):

我们有一个带有此类实例的引用参数的函数,

喜欢:

和一个返回样本类型对象的函数:

现在,当我们这样做时:

它工作完美。当我们将temp对象作为参数传递给funtionWithRef时,编译器将该对象的地址传递给函数。但是为什么它不起作用,如果我们不首先将functionReturnSample的返回值分配给实例,而是直接将该方法作为参数放入,例如:

为什么这会有所不同,当我们做同样的事情时,根据我查阅的一些书籍,应该

编辑

@user657267 这是完整的示例(源书:C++ From Ground Up,第 3 版,第 219-320 页):

这不会编译,并报告错误:

所以它是上述书中代码的副本/过去。你可以检查一下。

但是我弄清楚如果我将重载 = 运算符参数指定为const,例如:

然后它确实有效。然而,困扰我的是,现在当我有可运行的代码时,我不明白为什么要调用两次复制构造函数。我知道它在input()函数返回并创建临时对象时被调用,但我不明白为什么第二次,据我所知(但也许我错了)复制构造函数不会被调用用于赋值操作(同一本书,第 291-292 页),但它看起来像,尽管如此,当return *this; 被调用(当重载运算符返回值时),调用复制构造函数?那是怎么回事?谢谢

0 投票
1 回答
306 浏览

c++ - 二次公式 - 错误 C2064:术语不计算为采用 1 个参数的函数

我收到了这个错误:

错误 1 ​​错误 C2064:术语不计算为采用 1 个参数的函数

在线的:

二次公式程序的代码:

知道如何解决这个问题吗?

0 投票
5 回答
75 浏览

c++ - 字符串声明/引用参数的困难 (c++)

上周我得到了一个写一个函数的作业:该函数获取一个string和一个char值,并且应该将字符串分成两部分,在第一次出现现有字符之前和之后。

该代码有效,但我的老师告诉我再做一次,因为它的代码写得不好。但我不明白如何让它变得更好。到目前为止,我知道用空格定义两个字符串并不好,但否则我会超出范围异常。由于字符串输入发生变化,因此字符串大小每次都会发生变化。

0 投票
1 回答
107 浏览

inheritance - 使用作为参数传递的引用的方法覆盖

这个问题是基于这样的概念,即当我将子类的引用存储到父类变量中时。并且,使用该变量,我调用了 Child-Parent 两个类中都存在的方法。这里应该调用子方法并且确实如此但是当我将引用作为参数传递时不会发生这种情况,为什么?

预期输出:“儿童” 实际输出:“儿童”[如预期]

但,

为什么在这种情况下输出是“父母”?