Tag: 函数重载

为什么我应该重载方法?

我在我的重载方法书中发现了两个例子,但是它并没有清楚地解释为什么它是有用的: package keepo; public class Main{ public static void main(String [] args) { int newScore = calculateScore("Tim", 500); System.out.println("New Score is" + newScore); calculateScore(75); } public static int calculateScore(String playerName, int score){ System.out.println("Player" + playerName +"Has score" + score); return score * 1000; } public static int calculateScore(int score){ System.out.println("Unnamed player scored" + score + […]

如果我不在Javascript函数中传递参数会发生什么?

我对JavaScript的世界是陌生的,并且正在着手编写非常基本的函数,并偶然发现了下面的例子,并且我不确定为什么它在函数需要的时候没有传递参数。 示例函数 function myfunction(x) { alert("This is a sample alert"); } 现在,如果我调用函数myfunction(); 我收到警报。 为什么我可以在没有任何错误或警告的情况下调用函数,而没有传递参数呢? 编辑 我没有想到会有这么多好的答案,我也没有办法说出哪个答案是最好的,所以我可以要求人们提出最好的答案,我会把答案给予那个人。

C#构造函数重载

我如何在C#中使用构造函数,如下所示: public Point2D(double x, double y) { // … Contracts … X = x; Y = y; } public Point2D(Point2D point) { if (point == null) ArgumentNullException("point"); Contract.EndContractsBlock(); this(point.X, point.Y); } 我需要它不复制另一个构造函数的代码…

为什么最负的int值会导致模糊函数重载的错误?

我正在学习C ++中的函数重载,并且遇到了这个问题: void display(int a) { cout << "int" << endl; } void display(unsigned a) { cout << "unsigned" << endl; } int main() { int i = -2147483648; cout << i << endl; //will display -2147483648 display(-2147483648); } 从我的理解,在int范围(在我的情况下int是4字节)给出的任何值将调用display(int) ,超出此范围的任何值将是不明确的(因为编译器无法决定调用哪个函数)。 它对整个int值的范围是有效的,除了最小值,即-2147483648 ,其中编译失败并带有错误 重载display(long int)调用是不明确的 但是将相同的值2147483648 int并打印该值将会产生2147483648 。 我真的与这种行为混淆。 为什么只有当最负数字通过时才会观察到这种行为? (如果一个short和-32768使用,行为是一样的 – 事实上,在任何情况下,负数和正数都有相同的二进制表示) 使用的编译器:g ++(GCC)4.8.5

为什么在非consttypes的私有方法中不调用公共const方法?

考虑这个代码: struct A { void foo() const { std::cout << "const" << std::endl; } private: void foo() { std::cout << "non – const" << std::endl; } }; int main() { A a; a.foo(); } 编译器错误是: 错误:'void A :: foo()'是私人的。 但是,当我删除私人的只是工作。 为什么在非consttypes的私有方法时不调用公共const方法? 换句话说,为什么在访问控制之前重载parsing? 这很奇怪。 你认为这是一致的吗? 我的代码工作,然后我添加一个方法,我的工作代码根本不编译。

模板专精VSfunction重载

一本教科书我注意到,你可以提供自己的实现标准库函数,如swap(x,y)通过模板专门化function重载。 这对任何可以从除了赋值交换以外的其他types都有用的types是有用的,比如STL containers (已经有了交换,我知道)。 我的问题是: 有什么更好的:模板专门化给你的专门的交换实现,或function重载,提供了你想使用没有模板的确切参数? 为什么更好? 或者如果他们是平等的,为什么呢?

什么是函数重载和重写在PHP?

在PHP中,函数重载和函数重载是什么意思。 他们之间有什么区别? 无法弄清楚他们之间有什么区别。

Python函数重载

我知道,Python不支持方法重载,但我遇到了一个问题,我似乎无法以一个很好的Pythonic方式解决。 我正在制作一个angular色需要拍摄各种子弹的游戏,但是如何编写用于创build这些子弹的不同function? 例如,假设我有一个函数,它创build一个子弹以一定的速度从A点移动到B点。 我会写这样一个函数: def add_bullet(sprite, start, headto, speed): … Code … 但是我想编写其他函数来创build子弹如: def add_bullet(sprite, start, direction, speed): def add_bullet(sprite, start, headto, spead, acceleration): def add_bullet(sprite, script): # For bullets that are controlled by a script def add_bullet(sprite, curve, speed): # for bullets with curved paths … And so on … 等很多变化。 有没有更好的方法来做到这一点,而没有使用这么多的关键字参数导致它变得很快丑。 重命名每个函数也很糟糕,因为你得到了add_bullet1 , […]

函数在C中重载

有什么办法来实现C函数重载? 我正在寻找简单的函数被重载像 foo (int a) foo (char b) foo (float c , int d) 我认为没有一个简单的方法, 我正在寻找解决方法,如果有的话。