Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
Undefined operator '>' for input arguments of type 'BasicClass'
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hey, I want to write a simple class that will calculate recursive some values. Then, when I want to call my function, I got the report: Undefined operator '>' for input arguments of type 'BasicClass' Any ideas how can I repair this? I'm pretty new with the object oriented programming...
classdef BasicClass
properties
Value
end
methods
function [Result] = r (Value)
if Value > 0
Result = r(Value - 1) * 1000+2;
else
Result =2;
end
end
end
end
0 comentarios
Respuestas (2)
Steven Lord
el 1 de Sept. de 2017
The input argument to the r method of the BasicClass class will be an instance of BasicClass. You will need to access the property of that object explicitly; there's no implicit "Because this identifier matches the name of a property, we'll use the value of that property on the instance of the class in this method" behavior.
While you could make a new BasicClass object to perform the recursive call to the r method, I would instead use a class-related function that is not a method to do that recursion. Put all of the next block of code into a file named BasicClass.m.
classdef BasicClass
properties
Value
end
methods
function [Result] = r (myobj)
Result = recurseComputeR(myobj.Value);
end
end
end
function Result = recurseComputeR(myobjValue)
if myobjValue > 0
Result = recurseComputeR(myobjValue-1)*1000+2;
else
Result = 2;
end
end
Use this class like:
obj = BasicClass;
obj.Value = 2;
answer = r(obj)
You should receive 2002002 in the variable answer.
0 comentarios
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!