overloading相关内容

模板专业化 VS 函数重载

一本教科书我注意到你可以通过模板特化或函数重载为标准库函数提供你自己的实现,比如 swap(x,y).这对于任何可以从赋值交换以外的东西中受益的类型都很有用,例如 STL 容器(我知道已经编写了交换). 我的问题如下: 什么更好:模板专业化为您提供专业化交换实现或函数重载提供准确的您希望在没有模板的情况下使用参数? 为什么更好?或者如果它们相等,为什么会这样? 解决方案 ..

在 Java 的重载方法中使用 null

可能的重复: NULL 参数的方法重载 以下代码编译并运行良好. 公共类 Main{公共无效临时(对象 o){System.out.println("接收参数为Object类型的方法已被调用.");}公共无效临时(字符串){System.out.println("接收参数为String类型的方法已被调用.");}public void temp(int i){System.out.pri ..
发布时间:2022-01-06 23:13:01 Java开发

覆盖 == 运算符.如何与空值进行比较?

可能的重复: 如何检查空值在没有无限递归的“=="运算符重载中? 对此可能有一个简单的答案……但我似乎无法回答.这是一个简化的例子: 公共类人{公共字符串社会保障号码;公共字符串名字;公共字符串姓氏;} 假设对于这个特定的应用程序,如果社会安全号码匹配,并且两个名字匹配,那么我们指的是同一个“人". public override bool Equals(object Obj){人其 ..
发布时间:2022-01-06 22:52:42 C#/.NET

方法重载中的奇怪 Java null 行为

我有以下代码片段: public static void foo(Object x) {System.out.println("对象");}公共静态无效foo(字符串x){System.out.println("Str");} 如果我调用 foo(null) 为什么没有歧义?为什么程序调用foo(String x) 而不是foo(Object x)? 解决方案 为什么程序调用foo ..
发布时间:2022-01-06 22:30:12 Java开发

C#:将 null 传递给重载方法 - 调用哪个方法?

假设我有两个重载版本的 C# 方法: void Method( TypeA a ) { }无效方法(TypeB b){} 我调用该方法: 方法( null ); 调用了哪个方法的重载?我该怎么做才能确保调用特定的重载? 解决方案 取决于TypeA和TypeB. 如果其中一个适用(例如,没有从 null 到 TypeB 的转换,因为它是一个值类型,但 TypeA 是一个引用类型 ..
发布时间:2022-01-06 22:29:05 C#/.NET

C++ 用非静态函数重载静态函数

我想打印两种不同的东西,这取决于函数是使用 Foo::print() 还是从 Foo foo 的实例静态调用;foo.print(); 编辑:这是一个绝对不起作用的类定义,正如一些人已经回答的那样. class Foo {字符串 bla;Foo() { bla = "非静态";}void print() { cout ..
发布时间:2022-01-05 20:01:41 C/C++开发

对重载函数的模糊调用 - int 和 int&

void g(int& a){std::cout 这里有没有办法避免模棱两可的调用错误?类似于 g( static_cast(a) ); 解决方案 如果你可以投射,当然有一种方法来消除这个调用的歧义: g(const_cast(a)); 如果你坚持调用参考版本,解决方法就有点棘手了: static_cast(g)(a); ..
发布时间:2022-01-05 12:00:47 C/C++开发

F# 和接口实现的成员

我有一个令人烦恼的错误. type Animal =抽象成员名称:字符串类型狗(名称:字符串)=接口动物与成员 this.Name : string =名称let pluto = new Dog("Pluto")让名称 = pluto.Name 最后一行,特别是“Name"会生成一个编译器错误,指出“未定义字段、构造函数或成员‘Name’". 我使用的解决方法是编写 let name ..

为什么具有相同名称但不同签名的多重继承函数不被视为重载函数?

以下代码段在编译过程中产生了“对 foo 的模棱两可的调用"错误,我想知道在不完全限定对 foo 的调用的情况下是否有任何方法可以解决此问题: #include 结构 Base1{无效的 foo(int){}};结构 Base2{无效的富(浮动){}};结构派生:公共Base1,公共Base2{};int main(){派生 d;d.foo(5);std::cin.get();返回0;} 所以 ..
发布时间:2022-01-04 11:17:12 C/C++开发

如何在 Clojure 中调用重载的 Java 方法

对于此示例 Java 类: package foo;公共类 TestInterop{ 公共字符串测试(int i){返回“测试(整数)";}公共字符串测试(对象 i){返回“测试(对象)";}} 当我启动 Clojure 并尝试调用 test(int) 方法时,会调用 test(Object) 方法,因为 Clojure 会自动将整数装箱到 java.lang.Integer 对象中. ..
发布时间:2022-01-02 23:12:19 Java开发

在 VBScript 中确定 .Net 方法后缀号(COM-interop)

您可以通过 VBScript 中的 COM-interop 使用 .NET 方法.由于重载不会跨越托管/非托管边界,因此您必须向该方法附加某个后缀编号.后缀号好像没有特定的顺序……后缀号是怎么确定的? 示例: Dim 编码,bytesthroughdotnet设置编码 = CreateObject("System.Text.UTF8Encoding")bytesthroughdotnet ..
发布时间:2022-01-01 09:24:38 C#/.NET

公共运营商新建,私有运营商删除:获取C2248“无法访问私有成员"当使用新

一个类具有重载运算符 new 和 delete.new 是公开的,delete 是私有的. 在构造此类的实例时,出现以下错误: pFoo = new Foo(bar) example.cpp(1): 错误 C2248: 'Foo:operator delete': 无法访问类 'Foo' 中声明的私有成员 但是这里没有调用delete,那么编译器的扭曲思想是怎么回事?:) 错 ..
发布时间:2021-12-31 22:16:37 C/C++开发

覆盖纯虚函数的参数数量

我已经实现了以下接口: template 类变量{上市:变量 (T v) : m_value (v) {}虚拟无效回调()= 0;私人的:T m_value;}; 一个合适的派生类可以这样定义: class Derived : public Variable{上市:派生 (int v) : Variable(五) {}无效回调(){}}; 但是,我想派生 Callback 接受不同参数的类 ..
发布时间:2021-12-31 14:52:40 C/C++开发

为什么我不能在 PHP 中重载构造函数?

我已经放弃了在 PHP 中重载构造函数的所有希望,所以我真正想知道的是为什么. 有什么原因吗?它是否会创建本质上不好的代码?是被广泛接受的语言设计不允许,还是其他语言比 PHP 更好? 解决方案 您不能在 PHP 中重载任何方法.如果您希望能够在传递多个不同参数组合的同时实例化 PHP 对象,请使用带有私有构造函数的工厂模式. 例如: public MyClass {私有函数 ..
发布时间:2021-12-30 15:29:23 PHP

C++ 构造函数的默认参数

拥有一个使用默认参数的类构造函数是好习惯,还是应该使用单独的重载构造函数?例如: //使用这个...类 foo{私人的:std::string name_;无符号整数年龄_;上市:foo(const std::string& name = "", const unsigned int age = 0) :名称_(名称),年龄_(年龄){...}};//或这个?类 foo{私人的:std::str ..
发布时间:2021-12-30 15:20:46 C/C++开发

PowerShell 中的函数重载

你能在 PowerShell 中重载函数吗? 我想让我的函数接受一个字符串、数组或一些开关. 我想要的一个例子: Backup-UsersData singleUser Backup-UsersData @('Alice', 'Bob','乔') 备份-UsersData -all 解决方案 在 PowerShell 中函数不会重载.最后一个定义覆盖同一范围内的前一个 ..
发布时间:2021-12-29 20:07:24 其他开发

C# params 关键字有两个相同类型的参数

我今天刚刚在 C# 中遇到了一些我以前没有想到的东西.我的班级中有两种方法,一种是另一种的重载.它们是这样声明的: public void RequirePermissions(params string[] 权限)... public void RequirePermissions(string message, params string[] 权限)... 在我的代码中,我尝试像这样 ..
发布时间:2021-12-29 19:56:45 C#/.NET

可选函数参数:使用默认参数 (NULL) 还是重载函数?

我有一个函数可以处理给定的向量,但如果没有给出,也可以自己创建这样的向量. 对于这种情况,我看到了两种设计选择,其中函数参数是可选的: 使其成为一个指针并使其默认为NULL: void foo(int i, std::vector* optional = NULL) {如果(可选 == NULL){optional = new std::vector();//用数据填充向量}//处理 ..
发布时间:2021-12-29 19:53:50 C/C++开发