首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R2016a:当包和类名相等时构造类时出错

R2016a:当包和类名相等时构造类时出错
EN

Stack Overflow用户
提问于 2018-01-03 13:20:40
回答 1查看 40关注 0票数 3

假设我有以下目录结构:

代码语言:javascript
复制
Rootdir
└── +PkgClsName
    └── @PkgClsName
        └── PkgClsName.m

PkgClsName.m包含以下内容:

代码语言:javascript
复制
classdef PkgClsName < handle

    methods

        % Constructor
        function obj = PkgClsName()            
        end

        % Deep-copy handle object
        function new_obj = copy(obj)             
            new_obj = PkgClsName.PkgClsName();                            
        end

    end

end

然后,在R2016a中,会发生以下情况:

代码语言:javascript
复制
>> T = PkgClsName.PkgClsName;
>> T.copy()

One or more output arguments not assigned during call to "_mcos_superclass_implicit_construct".

Error in PkgClsName.PkgClsName

Error in PkgClsName.PkgClsName/copy (line 11)
            new_obj = PkgClsName.PkgClsName();

这使得不发生在R2010a、R2014a和R2017a中,指向R2016a中的(另一个)错误.

问题在于包和类名是相同的;更改命名方案使它们不同,从而解决了问题。但是,由于包名和类名必须在使用该类的所有函数/类中显式使用,这些名称现在至少在600个文件中被硬编码。我对其他几门课也有类似的构造.我宁愿把这些都完好无损。

我本来想找个地方做这个,但却找不到,难道我会忽略它吗?还有其他人遇到这个吗?有人知道一个简单的解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-03 16:10:58

它已经被报道为错误报告编号1314646,出现在R2015b和R2016a中,固定在R2016b中。

恐怕没有其他的解决办法,除了不为包和类使用相同的名称之外。

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

https://stackoverflow.com/questions/48078248

复制
相关文章

相似问题

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