0

这两个调用序列get(a) 和 a.get()有什么区别?

load gong
a = audioplayer(y, Fs);
a.get
get(a)
4

1 回答 1

1

默认情况下没有区别。但是,可以修改行为。

默认情况下,对于自定义类的对象,obj.method(arg1,arg2,...)method(obj,arg1,arg2,...). 这意味着当您编写前者时,MATLAB 会假装您编写了后者并相应地继续。

但是,可以重载subsref类的方法,在这种情况下,将为语法调用此函数obj.method(arg1,arg2,...)。也就是说,MATLAB 将其解释为一个索引操作 ( .method),然后是另一个索引操作 ( (arg1,arg2,...))。调用该subsref方法来评估这些索引操作。可以实现它以便在这种情况下调用适当的方法,但是为其他索引操作(例如obj(x)或)执行自定义索引代码obj{x}。例如,请参见此处

于 2019-08-24T18:55:39.003 回答