overloading 相关问题

术语重载和重载可以参考: - 构造函数和方法重载,一种多态,其中基于传递的参数的数据类型调用具有相同名称的不同函数 - 运算符重载,一种函数或方法重载的形式,其中被重载的动作是一个运算符,例如+或 -

Typescript 基于泛型修改类型

问题 有没有办法让类型的泛型修改类型本身? 可以在不创建两个函数的情况下完成吗? 这与 js 功能无关,仅与类型匹配有关。

回答 2 投票 0

GCC:允许C99中重载函数

我用C99编写代码并通过GCC编译。出于风格原因,我想使用函数重载(否则我必须自己进行名称修改)。 我读过 C99 是否有原因

回答 4 投票 0

过载解析混乱

我不知道重载解析在这里是如何工作的!对于第一个片段,它解析为 OVERLOAD A,但对于第二个片段,它会引发错误“不明确的调用”。 代码1 #包括<

回答 3 投票 0

有没有办法在编译时知道正在调用哪个版本的重载函数?

一种可能的方法是让重载函数的返回类型存储特定函数的信息: 模板 结构体tpinf { 我们...

回答 1 投票 0

重载被重写的方法

是否可以在派生类中实现多个重载方法,这些方法将像重写方法一样被调用?我找不到关于这个主题的任何内容。 简短的例子: 类基类 {

回答 1 投票 0

Spark Row 对象的实例化与重载原型不同?

pyspark/sql/types.py 中的 Spark Row 类不包含 __init__ 方法,但显示 __new__ 的以下重载类型提示: @超载 def __new__(cls, *args: str) -> “行” @ov...

回答 1 投票 0

Java中重载必须参数类型或参数个数不同,但擦除不能不同吗?

擦除是在运行时决定的,要调用的重载方法是在编译时决定的。 重载必须在参数类型或参数数量上有所不同,但不能擦除,这是正确的说法吗...

回答 1 投票 0

C++:构造函数仅接受字符串文字

是否可以创建一个仅接受字符串文字但不接受例如的构造函数(或函数签名)?字符常量 *? 是否有可能有两个重载可以

回答 7 投票 0

为什么 Swift 编译器不提示错误使用 Swift.String 而不是 Swift.Error?

最近,我的 Xcode 项目无法编译 未定义的符号:...链接器命令失败... 我对 swift 的细节有点缺乏经验,这就是为什么我想知道出了什么问题。 之后

回答 0 投票 0

Spark Row 对象的实例化方式与重载原型不同?

pyspark/sql/types.py 中的 Spark Row 类不包含 __init__ 方法,但显示 __new__ 的以下重载类型提示: @超载 def __new__(cls, *args: str) -> “行” @ov...

回答 1 投票 0

将成员函数 const 和非常量重载传递给 std::function

我试图让函数指针操作变得“更流畅”,但当有两个重载:const 和 non-const 时,我在将成员函数传递给 std::function 时遇到了问题。

回答 2 投票 0

重载使用 SFINAE 的模板类的模板运算符

我有一个模板类(具有 SFINAE 条件),我想重载模板运算符 << for it. This code works, but it also allow all operator << overloaded for all types T to ...

回答 1 投票 0

重载使用SNIFAE的模板类的模板操作符

我有一个模板类(带有 SNIFAE 条件),我想重载模板运算符 << for it. This code works, but it also allow all operator << overloaded for all types T to ...

回答 1 投票 0

TypeScript 函数重载

TypeScript 语言规范的第 6.3 节讨论了函数重载,并给出了如何实现这一点的具体示例。但是,如果我尝试这样的事情: 导出类 LayerFactory {...

回答 5 投票 0

使用 constexpr、SFINAE 和/或 type_traits 进行 char*、char 数组和字符串文字的重载解析

我遇到了一个有趣的挑战,我花了几个小时试图解决这个挑战,但经过大量研究和多次失败的尝试后,我发现自己在问这个问题。 我想写3

回答 2 投票 0

基于类的泛型类型重载函数

在 Swift 中,我有一个类型上的泛型视图。我想要两个初始值设定项来限制我们可以用作泛型类型的内容。我还有一个该视图的视图模型: 构造 MyView 在 Swift 中,我有一个类型上的泛型视图。我想要两个初始值设定项来限制我们可以用作泛型类型的内容。我也有这个视图的视图模型: struct MyView<SomeType: Equatable>: View { @State private var viewModel: ViewModel init(someArray: [SomeType]) where SomeType == SomeTypeOption1 { ... } init(someArray: [SomeType]) where SomeType == SomeTypeOption2 { ... } } (假设,基于围绕代码库的建模,我不想想要制定一个协议,SomeTypeOption1和SomeTypeOption2符合并在我们传入的数组周围有一个包装器。) 现在在视图模型中,假设我们有一个对传递到视图中的 someArray 的引用。 我想根据SomeType的类型重载一个函数。我将视图模型作为视图的扩展,因此通用类型得以保留。这是我尝试过的: extension MyView { @Observable class ViewModel { var someArray: [SomeType] ... func myFunc() where SomeType == SomeTypeOption1 { someArray.append(SomeTypeOption1.init(...)) } func myFunc() where SomeType == SomeTypeOption2 { someArray.append(SomeTypeOption2.init(...)) } } } 但是,如果在我看来,我尝试调用 myFunc() (比如在 Button 操作中),编译器会抱怨“没有与实例方法完全匹配”,所以我猜它遇到了麻烦弄清楚它可以使用这些函数(以及应该使用哪一个)。我本以为,因为我们在视图初始值设定项中有 where 子句,所以这不会是问题。 有人知道我该如何解决这个问题吗? myFunc的问题在于它需要可用于SomeType泛型的所有可能值,因为编译无法推断出MyView只能使用提供的两个值来实例化。 此外,该语言还没有提供将泛型参数限制为一组固定的具体类型的支持,即使提供了,您也需要一个抽象以便能够从视图中调用 myFunc()型号。 正如其他人在评论中所说,最好的做法是重新设计您的代码。但是,如果您设置使用问题中描述的架构,一个快速的解决方法是声明一个不执行任何操作的非通用 myFunc 重载: func myFunc() { // this code is not reachable anyway, but we can add a // crash that occurs only in Debug builds, to catch the impossible assertionFailure("Should not reach here") } 实际上,无法调用上述函数,因为拥有视图模型的视图只能使用具有相应重载的两种类型之一进行初始化。 但需要注意的是,需要注意好像 MyView 将支持新类型,那么 myFunc 也需要通过新的重载来增强。将不会有编译器支持来帮助您不要忘记更新两种类型(视图和视图模型)。

回答 1 投票 0

我们可以重载 int 或 float 等内置类型的运算符吗?

我们可以在C++中声明这样的函数吗: int 运算符 + (int , int);

回答 3 投票 0

main函数可以重载吗?

C++ 中存在两个有效的 main() 版本: int main() // 版本 1 int main(int argc, char **argv) // 版本 2 但两种过载不能同时共存。为什么不? (潜在用例:...

回答 6 投票 0

如何根据参数数量选择我的函数[重复]

我知道Python中不乏关于函数重载的问题,但我不觉得他们解决了我的问题。 这就是我今天所做的; def some_function_with_one_argument(x): ...

回答 1 投票 0

我想根据参数的数量来选择我的函数,但这在Python中是非常尴尬和难看的,我该怎么办? [重复]

我知道Python中不乏关于函数重载的问题,但我不觉得他们解决了我的问题。 我完全意识到,在某人之前,这只是几秒钟的事情

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.