Class句柄。软件
Class handle. Matlab
我有 2 个相似的 classes:
classdef class1 < handle
properties (Access = public)
b
end
properties (Access = private)
a
end
methods (Access = public)
function this = class1()
this.a = 1;
this.b = 1;
end
function test(this)
'Inside class'
this.a
this.b
this.a = 2;
this.b = 2;
end
end
end
第二个:
classdef class2
properties (Access = public)
b
end
properties (Access = private)
a
end
methods (Access = public)
function this = class2()
this.a = 1;
this.b = 1;
end
function test(this)
'Inside class'
this.a
this.b
this.a = 2;
this.b = 2;
end
end
end
有一次我继承自handle。另一个我不做。在我创建这样的脚本之后:
solver1 = class1();
solver1.b
solver1
solver1.test()
solver1.b
solver1
solver1.test()
solver2 = class2();
solver2.b
solver2
solver2.test()
solver2.b
solver2
solver2.test()
如果我逐步调试我的程序,我会看到 a 和 b 在 solver2.test()
之后的第二个 class 没有改变。但是第一个class这些变量在solver1.test()
之后发生了变化。这个问题的原因是什么?
我用下一种方法解决了这个问题。我将全局变量声明为 class。在此之后,我可以检查这个任何变量的进出 class。这是一种糟糕的方式,但它确实有效。
我有 2 个相似的 classes:
classdef class1 < handle
properties (Access = public)
b
end
properties (Access = private)
a
end
methods (Access = public)
function this = class1()
this.a = 1;
this.b = 1;
end
function test(this)
'Inside class'
this.a
this.b
this.a = 2;
this.b = 2;
end
end
end
第二个:
classdef class2
properties (Access = public)
b
end
properties (Access = private)
a
end
methods (Access = public)
function this = class2()
this.a = 1;
this.b = 1;
end
function test(this)
'Inside class'
this.a
this.b
this.a = 2;
this.b = 2;
end
end
end
有一次我继承自handle。另一个我不做。在我创建这样的脚本之后:
solver1 = class1();
solver1.b
solver1
solver1.test()
solver1.b
solver1
solver1.test()
solver2 = class2();
solver2.b
solver2
solver2.test()
solver2.b
solver2
solver2.test()
如果我逐步调试我的程序,我会看到 a 和 b 在 solver2.test()
之后的第二个 class 没有改变。但是第一个class这些变量在solver1.test()
之后发生了变化。这个问题的原因是什么?
我用下一种方法解决了这个问题。我将全局变量声明为 class。在此之后,我可以检查这个任何变量的进出 class。这是一种糟糕的方式,但它确实有效。