问个很幼稚的编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 02:51:37
为什么java,c++方法里面传参数的时候只能传对象或者基本数据类型
就不能传一方法当做参数么
如果看不懂的话我写出来
比如
public void a(){

}
public void b(Method a){

}
就是把a方法传到b方法里面当参数使用
为什么现在编程的语言都没有这种?

我不知道你以前用什么语言 但是Java和C++里面是可以有替代方案的

C++中你可以传函数指针,也就是指向函数的指针,这样相当于一个方法进去了

Java中你可以传一个匿名对象,这个匿名对象实现一个接口,这个接口有一个你需要的方法,比如
interface IDelegate{
void MyMethod();
}
这样把匿名对象传进去相当于一个方法

c#中你可以传递委托,委托相当于一个对象+一个方法,同样可以实现你的功能

把子程序(函数、过程、静态方法)作为参数,多数语言都支持的,C语言里面应该使用取地址的方法,例如:
b(&a);