overloading 相关问题

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

为什么声明虚函数的明确非虚重载是警告?

我一直在阅读我能找到的所有地方,我只是不明白 GCC 给我的警告是什么,让我感到不安。我有这段代码: A类; B类; 高级班 { virtual void foo(A&...

回答 1 投票 0

自定义回调函数不能重载

我有以下类,用于为函数类型的任何子集构建回调函数,无论是静态函数、lambda、带捕获列表的 lambda、静态类函数还是成员类函数。 P...

回答 1 投票 0

C++17中重载函数的模糊错误[重复]

我在下面写了 c++17 代码: 类我的类{ 民众: 我的课() { 标准::计算<< "ctor\n"; } Myclass(const Myclass&) { std::cout << "copy

回答 1 投票 0

Typescript 函数重载不起作用

错误是 输入 '(str: string, convert?: unknown) => { result: number; } | { 结果:字符串; }' 不可分配给类型 'X'。 输入'{结果:数字; } | { 结果:字符串; }' 不是分配...

回答 1 投票 0

方法重载 Visual Studio

我正在做一个项目。该项目涉及一个数据库,其中包含一个名为“Customers”的表。在同一个项目中,我有一个名为“frmAddNewCustomer”的表单。这种形式有 9 个与

回答 2 投票 0

Typescript - 重载函数的正确方法,可以获取字符串数组或字符串作为列(rest 运算符)

我想向用户介绍更好的 api 以通过键获取值。这个想法是允许将键作为数组传递或作为列一个接一个地传递。例如: mget('key1', 'key2', 'key3'); mget(['key1', ...

回答 1 投票 0

派生类调用带有特定参数的基类方法

考虑以下代码: #包括 结构事物 { void foo(bool b = true) { 标准::计算<< "Thing::foo() called with b = " << std::boolalpha <...

回答 2 投票 0

带有可变数量参数的打字稿箭头函数重载

我正在使用官方 ts 手册学习 ts 函数重载。有一些例子,但只有 function 关键字。所以,我正在尝试使用箭头函数编写,尤其是使用各种参数 nu...

回答 0 投票 0

如何使用类型为基参数子类的参数重载函数?

如果我有一个基本抽象类,其函数将它自己的类作为参数: 类组件抽象 { 民众: 虚拟布尔方法(组件&其他)= 0; }; 我有一个孩子

回答 2 投票 0

如何让构造函数在 C++ 中接受无限参数?

出于教育目的,我正在重新实现 std::list。 我想知道是否有一种方法可以让用户使用这种语法进行初始化: 我的::列表 l = {1, 2, 3, 4, 5};

回答 2 投票 0

如何让构造函数在 C++ 中接受无限参数?

出于教育目的,我正在重新实现 std::list。 我想知道是否有一种方法可以让用户使用这种语法进行初始化: 我的::列表 l = {1, 2, 3, 4, 5};

回答 2 投票 0

C++ std::array 作为重载函数的参数是不明确的

我期待编译器根据数组的大小选择使用哪个函数。它在 call funct({1,2,3}); 上正常工作,但其他的不明确,为什么?不是数组 我期待编译器根据数组的大小选择使用哪个函数。在call上正常工作funct({1,2,3});,但是其他的就模棱两可,为什么? array<int,1> 不是与 array<int,2>、array<int,3> 等不同的数据类型吗? 这是我的代码: #include<iostream> #include<array> using namespace std; void funct(array<int,1>one) { cout<<"one"<<endl; } void funct(array<int,2>two) { cout<<"two"<<endl; } void funct(array<int,3>three) { cout<<"three"<<endl; } int main() { funct({1,2,3}); funct({1,2}); funct({1}); return(0); } 这是我的构建消息([redacted] 是我出于明显原因删除的消息): ||=== Build: Debug in ambiguitytest (compiler: GNU GCC Compiler) ===| [redacted]\ambiguitytest\main.cpp||In function 'int main()':| [redacted]\ambiguitytest\main.cpp|19|error: call of overloaded 'funct(<brace-enclosed initializer list>)' is ambiguous| [redacted]\ambiguitytest\main.cpp|8|note: candidate: void funct(std::array<int, 2u>)| [redacted]\ambiguitytest\main.cpp|12|note: candidate: void funct(std::array<int, 3u>)| [redacted]\ambiguitytest\main.cpp|20|error: call of overloaded 'funct(<brace-enclosed initializer list>)' is ambiguous| [redacted]\ambiguitytest\main.cpp|4|note: candidate: void funct(std::array<int, 1u>)| [redacted]\ambiguitytest\main.cpp|8|note: candidate: void funct(std::array<int, 2u>)| [redacted]\ambiguitytest\main.cpp|12|note: candidate: void funct(std::array<int, 3u>)| ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| std::array<int, N> 可以用任意长度的花括号初始化器列表初始化,最大为 N。它执行聚合初始化并将数组的其余元素初始化为零。 所以对于 funct({1,2}); 和 funct({1}); 多个过载候选是可行的。 在重载决议中,没有规则使具有更多匹配元素的聚合初始化更好地匹配,因此重载决议是模棱两可的。 如果需要确定初始化列表的长度,可以使用模板代替: template<std::size_t N> void funct(const int (&arr)[N]) { if(N == 1) cout<<"one"<<endl; else if(N == 2) cout<<"two"<<endl; else if(N == 3) cout<<"one"<<endl; else cout<<"something else"<<endl; } (请注意,这仅适用于将内置数组作为函数参数的引用。它不适用于std::array。内置数组具有允许这样做的特殊推导规则。)

回答 1 投票 0

重载函数以与变量和文字一起使用 - 模棱两可的调用错误

我正在尝试重载一些函数以处理多种数据类型。当我将变量作为参数传递时,这是微不足道的,因此: void fnc(int32_t d){ Serial.println((String) "int32 =...

回答 1 投票 0

Java的箭头函数作为函数参数不能被推断为Function或Consumer

下面是Test.java的代码: 导入 java.util.function.Consumer; 导入 java.util.function.Function; 公共课测试{ 私有静态无效测试(函数函数){ System.out.println(&

回答 0 投票 0

重载 HTTP POST

请告诉我,为什么我会收到错误:获取错误 内部服务器错误 http://127.0.0.1:5001/swagger/v1/swagger.json 发生错误的代码部分: [HttpPost] [动作名称("

回答 1 投票 0

“至少一个参数是 X 类型”的类型注释

我正在尝试使用重载使可变参数函数的返回类型以某种方式取决于其参数的类型。具体来说,我希望返回类型为 X 当且仅当任何...

回答 1 投票 0

函数返回的值未被使用

虽然我学过java,但对C++还是很陌生。 下面的代码是假设玩家在受到伤害后计算他们的健康状况,假设他们很脆弱。问题是 spellFireDamage 是 ...

回答 1 投票 0

映射到 Typescript 接口时如何保留函数重载[重复]

代码 想象一个具有两个函数重载的接口。 接口 API { parseNumber(输入:字符串,useBigInt:真):bigint parseNumber(input: string, useBigInt: false): 数字 } 你怎么能...

回答 0 投票 0

JavaScript 方法/函数重载

是否可以像在 C# 中那样在 JS 中重载函数/方法? 如果可能的话,尝试在 JS 中重载函数以获取不同数量的参数。

回答 1 投票 0

Python:映射泛型类型?

我是 python 的新手,不知道是否有办法做到这一点: 从键入 import Literal,重载, @超载 def 递归(arg:文字[“VOWEL”])->文字[“A”,...

回答 1 投票 0

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