2016-03-16 183 views
0

两类:Matlab的 - 从另一个方法调用MATLAB的一种方法

classdef first < handle 
    methods 
     function hello(obj) 
      disp('hello ok') 
      obj_second.bye 
     end 
    end 
end 

classdef second < handle 
    methods 
     function bye(obj) 
      disp('bye ok') 
     end 
    end 
end 

我希望能够从obj_first调用obj_second.bye。


>> obj_first=first; 
>> obj_second=second; 
>> obj_first.hello 
hello ok 
Undefined variable "obj_second" or class "obj_second.bye". 

Error in first/hello (line 5) 
      obj_second.bye 

>> 

obj_second似乎有在类“第一”,以由此类被认为是构造;你怎么看?

+0

你可能需要后'bye'括号:代替)'obj_second.bye(' 'obj_second.bye'。 –

+2

此外,你必须发布你的实际问题是什么。你试过什么,结果与你的期望有什么不同? –

+3

指向'obj_second'的指针应该从哪里来,你永远不会初始化它?请描述你想要实施的行为。 – Daniel

回答

1

在您hello方法,你只能访问表示第一类的调用它当前实例(例如obj_first这里)和潜在的类properties局部变量obj。但是您不能访问其他外部变量,如obj_second

要做到这一点,你必须把它作为参数:

classdef first < handle 
    methods 
     function hello(obj, obj2) 
      disp('hello ok') 
      obj2.bye() 
     end 
    end 
end 

>> obj_first.hello(obj_second) 
相关问题