主要内容

类定义中的过载函数

为什么重载函数

课程可以重新定义matlab®通过实现具有相同名称的方法来函数。在定义要表现得像现有MATLAB类型的专用类型时,重载是有用的。例如,您可以实现关系操作,绘图函数和其他常用的MATLAB函数来与类的对象一起使用。

您还可以通过实现控制这些行为的特定函数来修改默认行为。有关修改默认行为的函数的更多信息,请参阅修改默认行为的方法

实施超载马铃薯职能

类方法可以提供仅在类的实例上运行的MATLAB函数的实现。这种限制是可能的,因为MATLAB可以始终标识对象所属的类。

Matlab使用主导参数来确定要调用的函数的版本。如果主导参数是一个对象,则Matlab调用对象类定义的方法,如果存在。

在类定义具有与全局函数相同名称的方法的情况下,据说该类的函数的实现超载原始的全球实施。

超载MATLAB功能:

  • 定义具有与要过载的函数相同的名称的方法。

  • 确保方法参数列表接受类的对象,Matlab用于确定要调用的版本。

  • 在方法执行函数的方法中执行必要的步骤。例如,访问对象属性以操纵数据。

通常,重载函数的方法产生类似于MATLAB函数的结果。但是,有关如何实现重载方法的要求无要求。重载方法不需要匹配重载功能的签名。

笔记

MATLAB不支持使用不同函数名金宝app称的不同签名的重载函数。

过载栏功能

它方便过载通常使用的功能与您的类对象一起使用。例如,假设一个类定义一个存储通常图表的数据的属性。这mydata.班级覆盖了酒吧函数并为图添加标题:

Classdef.mydata.特性数据结尾方法功能obj = mydata(d)如果nargin> 0 obj.data = d;结尾结尾功能酒吧(obj)y = obj.data;酒吧(y,'Edgecolor''r');标题('我的数据图'结尾结尾结尾

mydata.酒吧方法与matlab具有与matlab相同的名称酒吧功能。然而mydata.酒吧方法需要A.mydata.对象作为输入。因为该方法是专门的mydata.对象,它可以从中提取数据数据属性并创建专业图形。

用来酒吧方法,创建一个对象:

y =兰特(1,10);md = mydata(y);

使用该对象调用方法:

酒吧(MD)

您还可以使用dot表示法:

md.bar.

实施马铃薯运营商

旨在实现新MATLAB数据类型的类通常定义某些运算符,例如添加,减法或平等。

例如,标准MATLAB添加(+)不能添加两个多项式,因为该操作没有通过简单的添加定义。但是,A.多项式班级可以定义自己的matlab语言调用执行添加的方法多项式当你使用时的物体+象征:

P1 + P2.

有关过载运营商的信息,请参阅操作员重载

命名规则以避免冲突

方法,属性和事件的名称是范围的。因此,遵守以下规则以避免命名冲突:

  • 您可以重用在不相关的类中使用的名称。

  • 如果成员没有公共或受保护的访问,则可以重用子类中的名称。然后,这些名称可以在不影响超类定义的情况下引用完全不同的方法,属性和事件

  • 在类中,所有名称都存在于同一名称空间中,并且必须是唯一的。类无法定义具有相同名称的两种方法,并且类无法定义具有与方法相同的本地函数。

  • 在没有其类前缀的情况下考虑静态方法的名称。因此,没有其类前缀的静态方法名称不能匹配任何其他方法的名称。

相关话题