繁体   English   中英

如何通过索引分配对象数组? (C ++)

[英]How to assign an object array by index? (C++)

这是我的Character类的构造函数:

Character(int, int, int, string, string, string, string, string, double, double, bool, bool);

在主要功能中,这是我尝试过的方法:

Character character[100];
character[0] = {777, 10, 5, "one", "type", "desc", "status", "knife", 10.0, 20.0, false, true};
character[1] = {707, 5, 10, "two", "type2", "desc2", "status", "knife", 15.0, 23.4, true, true};

没有存储类或类型说明符的错误状态。

编辑*最后使用此命令正确:p / s-如果有的话,请提供更好的解决方案。 = /

Character character[100] = { character[0] = { 777, 10, 5, "one", "type", "desc", "status", "knife", 10.0, 20.0, false, true },
                             character[1] = { 707, 5, 10, "two", "type2", "desc2", "status", "gun", 15.0, 23.4, true, true },
                             character[2] = { 888, 7, 43, "three", "type3", "desc3", "status", "sword", 15.0, 23.4, false, false } };

假设您已经正确定义了operator= ,则可以执行以下操作:

Character character[100];
character[0] = Character( 777, 10, 5, "one", "type", "desc", "status", "knife", 10.0, 20.0, false, true );
character[1] = Character( 707, 5, 10, "two", "type2", "desc2", "status", "knife", 15.0, 23.4, true, true );

如果仅打算选择性地初始化数组中的元素,则C99 指定了初始化器 ,这些初始化器似乎也可以在C ++中使用。

Character character[100] = {
    [0] = Character( 777, 10, 5, "one", "type", "desc", "status", "knife", 10.0, 20.0, false, true ),
    [1] = Character( 707, 5, 10, "two", "type2", "desc2", "status", "knife", 15.0, 23.4, true, true )
};

对于其余元素,还必须具有默认的Character构造函数。

但是,此功能似乎在C ++ 11中不存在 ,但gcc似乎可以处理它(可能是通过扩展)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM