如何使用类名创建一个对象

97(30天)
Sylvain
Sylvain 2020年2月18日
评论道: Sylvain 2020年2月21日
在函数中,我获得一个对象的类名创建一个新的。什么才是正确的语法来创造新的对象吗?
函数newObj = createNewObject (obj)
className =类(obj);
newObj = className ();
结束

接受的答案

马特·J
马特·J 2020年2月18日
函数newObj = createNewObject (obj)
newObj =函数宏指令(类(obj));
结束
3评论
Sylvain
Sylvain 2020年2月21日
谢谢你,非常有教育意义

登录置评。

更多的答案(2)

天空缝匠肌
天空缝匠肌 2020年2月18日
快速和肮脏的方法,将工作在许多情况下是使用eval:
函数新= createNewObjectOfThisClass(原始)
新= eval([类(原始)“空虚;”]);
结束

图像分析
图像分析 2020年2月18日
这并不适用于所有类型的对象,如结构、其他专门设计的类,等等。我认为你最好做一个变量的副本
函数newObj = createNewObject (obj)
newObj = obj;
结束
它将输入的值对象,但更重要的是,它将继承 所有 字段,输入类的属性和方法。正如你所看到的你甚至不需要这个功能,因为它只是一个包装器比基本上什么也不做。你可以简单地这样做
newObj = obj;
而不是这个
newObj = createNewObject (obj)
1评论
马特·J
马特·J 2020年2月18日
编辑:马特·J 2020年2月18日
我不同意。它常常需要调用构造函数实例化一个新的、独立的版本的原始对象。例如,如果 obj 是一个对象的一个句柄类呢
newObj = obj
你不给一个独立的副本吗 obj。 只是另一个句柄,其属性数据。

登录置评。

类别

找到更多的在构建和使用对象数组帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!