<分区>
在 C# 中,这当然是可能的,因为这个可编译的示例可以显示:
static void Teste(int x) { }
static void Teste(ref int x) { }
static void Teste()
{
int i = 0;
Teste(i);
Teste(ref i);
}
但是它可以用构造函数在 C++(/CLI) 中完成吗?请参见下面的示例:
class Foo
{
Foo(int bar)
{
// initializing "Foo" instance...
}
Foo(int &bar)
{
// initializing "Foo" instance...
}
//...
}
尽管此类确实使用这些构造函数进行编译,但我看不出当我应用一个是另一个时如何选择,也就是说,调用是模棱两可的,因为我不知道用于此目的的关键字“ref” C#。我在构造函数中尝试过,其中名称必须与类相同(当然我可以添加一个无用的参数,但我想知道我是否可以不这样做)。
顺便说一句,我在谷歌上搜索了一下,只得到了诸如“按引用传递和按值传递有什么区别?”之类的信息。但没有涵盖像这样的重载。而且我想作为解决方法我可以使用指针,这要归功于“获取地址”(&
);或者如上所述,有一个额外的无用参数。但我想知道的是:我可以有这样的重载(通过引用/通过值)吗?
提前致谢