与C ++类似,我们可以在没有初始化的情况下定义构造函数,我们可以在Matlab中使用classdef吗?我试过但它抱怨“测试已经定义”,这意味着我无法定义两个具有相同名称的函数。
classdef Test
properties
id;
end
methods
%constructor without initialization
function obj = Test
end
%constructor with initialization
function obj = Test(x)
obj.id = x;
end
end
end
答案 0 :(得分:2)
您的构造函数定义可以指定输入参数,并且技术上不必由用户传递。您可以将exist
与输入变量名称一起使用,以确定是否提供了输入,并且仅在提供输入时分配属性值。
classdef Test
properties
id;
end
methods
function obj = Test(x)
if exist('x', 'var')
obj.id = x;
end
end
end
end