34.4.1函数重载

任何Octave函数都可以重载,这允许根据需要调用函数的特定于对象的版本。多项式类的一个相关示例可能是重载多项式求值作用

函数[y,dy]=polyval(p,varargin)如果(nargout>1)[y,dy]=polyal(fliplr(p.poly),varargin{:});else y=聚乙烯(fliplr(p.poly),varargin{:});endifend函数

此函数只是将功传递给正常的octave多项式求值作用多项式类重载函数的另一个有趣的例子是plot作用

函数h=图(p,varargin)n=128;rmax=最大值(abs(根(p.poly));x=[0:(n-1)]/(n-1)*2.2*rmax-1.1*rmax;如果(nargot>0)h=图(x,polyval(p,x),varargin{:});else图(x,polyval(p,x),varargin{:});endifend函数

这允许多项式被绘制在多项式的根区域附近的域中。

对重载特别感兴趣的函数是类转换函数,例如double。这些函数重载允许铸造函数来处理用户类。它还可以帮助使用其他类的方法和函数来使用类对象,因为对象可以转换为新函数所需的输入形式。一个例子double多项式类的函数可能看起来像

函数a=双(p)a=p.poly;结束函数

版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号