0

假设fee下面的类是在一个包中定义的,例如+fee/fee.m. 为了让flip方法调用类构造函数,似乎有必要使用完整的命名空间,即foo.fee. 如果可以在不引用包含包的情况下定义对象,那就太好了。

有没有办法避免通话foo.fee

classdef fee
   properties
      x
      y = 1
   end
   methods
      function self = fee(x)
         self.x = x;
      end
      function self2 = flip(self)
         self2 = foo.fee(self.x);
         self2.y = xor(self.y,1);
      end
   end
end
4

1 回答 1

1

您是否尝试过使用导入功能?我认为应该可以做这样的事情:

classdef fee
   properties
      x
      y = 1
   end
   methods
      function self = fee(x)
         self.x = x;
      end
      function self2 = flip(self)
         import(mfilename('class'));           
         self2 = fee(self.x);
         self2.y = xor(self.y,1);
      end
   end
end
于 2013-07-05T07:02:49.663 回答