"overloading"在编程中的真正含义
True meaning of word "overloading" in programming
我正在学习 C++,但我对重载运算符和函数的真正含义感到困惑。
在我用过的本地文献中,有一个重载函数的翻译,“load”是一个名词,而不是一个动词——所以它的意思是"an excessive load or burden" although in this case, as I understood it, nothing is "overloaded" in that sense (e.g. similar to circut overload)。
如果我们将“加载”视为动词,那么它意味着函数在现有定义上“再次加载”。
我走在正确的道路上吗?在编程的情况下,“重载”的正确解释是什么?
在 C++ 中,“重载”是指 overload resolution 期间的候选函数。
简单来说,这是指多个函数或运算符声明具有相同的标识符,但具有不同的参数或不同的限定符。这些函数中的每一个都是重载,编译器选择调用哪个函数的过程就是重载决策。
例如,下面为函数 foo
声明了两个重载,它们的参数类型不同:
void foo(int);
void foo(double);
编程中的术语重载源于semantic overloading——即为某个词或短语赋予多重含义。
在 C++ 的情况下,相同的函数或运算符可以 重载 - 这意味着它可以有多个版本用于不同的参数类型。然后调用哪个重载由进程 overload resolution.
的调用上下文确定
我正在学习 C++,但我对重载运算符和函数的真正含义感到困惑。
在我用过的本地文献中,有一个重载函数的翻译,“load”是一个名词,而不是一个动词——所以它的意思是"an excessive load or burden" although in this case, as I understood it, nothing is "overloaded" in that sense (e.g. similar to circut overload)。
如果我们将“加载”视为动词,那么它意味着函数在现有定义上“再次加载”。
我走在正确的道路上吗?在编程的情况下,“重载”的正确解释是什么?
在 C++ 中,“重载”是指 overload resolution 期间的候选函数。
简单来说,这是指多个函数或运算符声明具有相同的标识符,但具有不同的参数或不同的限定符。这些函数中的每一个都是重载,编译器选择调用哪个函数的过程就是重载决策。
例如,下面为函数 foo
声明了两个重载,它们的参数类型不同:
void foo(int);
void foo(double);
编程中的术语重载源于semantic overloading——即为某个词或短语赋予多重含义。
在 C++ 的情况下,相同的函数或运算符可以 重载 - 这意味着它可以有多个版本用于不同的参数类型。然后调用哪个重载由进程 overload resolution.
的调用上下文确定