首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化子类对象的数组会创建一个异构的超类数组

初始化子类对象的数组会创建一个异构的超类数组
EN

Stack Overflow用户
提问于 2013-09-04 22:22:27
回答 1查看 557关注 0票数 2

在Matlab中,我有两个类

代码语言:javascript
复制
classdef A < matlab.mixin.Heterogeneous
    properties
        a;
    end
    methods
        function obj = A(varargin)
           obj.a = 3;
        end
    end
end

代码语言:javascript
复制
classdef B < A
    properties
        b;
    end
    methods
        function obj = B(varargin)
            obj = obj@A(varargin);
            obj.b = 4;
        end
    end
end

我现在尝试初始化一个长度为2的B类型的数组

代码语言:javascript
复制
>> objarray(2) = B

objarray = 

  1x2 heterogeneous A (A, B)

  Properties:
    a

  Methods, Superclasses

为什么Matlab坚持让它成为A类?我如何才能坚持它是B类呢?

编辑:使用调试器,很明显,在创建objarray(1)时,Matlab从不进入B的构造函数。

EN

回答 1

Stack Overflow用户

发布于 2013-09-04 23:28:01

我自己从来没有尝试过,但我相信matlab.mixin.Heterogeneous有一个方法getDefaultScalarElement,您可以自己实现/覆盖它,它将定义在您分配以后的元素时如何回填数组的初始元素。有关更多信息,请参阅关于中途关闭this文档页面。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18616450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档