学过C++的人都 知道 C++中函数可以重载吧
现在我写了个类可以在Flash AS2.0种模拟函数重载 希望对各位有用
/****************************************************************
程序编写:KoaQiu(小贝)
联系方式:KoaQiu@126.com
说明:函数重载示例文件
使用方法:
1。保证库中有“重载”组件
2。编写重载函数 例如 方法Add 有3个重载函数 分别命名为add_1,add_2,add_3;
3。编写函数主体 具体方法见以下的代码
4。现在可以在该函数的作用域中随意使用此函数了
申明:
可以自由使用此文件(开发、修改或转载) 但需保存此版权信息。
如果你扩展了此文件请通知我并提供一份副本给我。
谢谢!
2004-12-17 于E++工作室
*****************************************************************
function fun() {
var t = new com.Ejj.comm.重载(this);
//第一个参数是 重载函数名
//第二个参数是 参数类型列表 注意一定要书写正确
t.addFun("fun1", "boolean");
t.addFun("fun2", "number,number");
t.addFun("fun3", "string,string");
//自动判断 并调用正确的函数 此语句不用更改
return t.Call(arguments);
}
function fun1(a:Boolean) {
trace("call fun1");
}
function fun2(a:Number, b:Number) {
trace("call fun2");
return a+b;
}
function fun3(a:String, b:String) {
trace("call fun3");
return a+b;
}
trace("1+2="+fun("1","2"));
trace("1+2="+fun(1, 2));
fun(99);
var t = new com.Ejj.comm.重载(this);
//第一个参数是 重载函数名
//第二个参数是 参数类型列表 注意一定要书写正确
t.addFun("fun1", "boolean");
t.addFun("fun2", "number,number");
t.addFun("fun3", "string,string");
//自动判断 并调用正确的函数 此语句不用更改
return t.Call(arguments);
}
function fun1(a:Boolean) {
trace("call fun1");
}
function fun2(a:Number, b:Number) {
trace("call fun2");
return a+b;
}
function fun3(a:String, b:String) {
trace("call fun3");
return a+b;
}
trace("1+2="+fun("1","2"));
trace("1+2="+fun(1, 2));
fun(99);
