Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用枚举和for循环创建类的实例 enum{木材、砖块、谷物、大麻、羊毛、生铁、蜂蜜、盐、金属制品、蜂蜜酒、布、啤酒、鳕鱼、衣服、奶酪、沥青、毛皮、肉、酒、香料、总资源}; //每个资源名称的字符串数组 //只要它们与枚举的顺序相同,所有内容都应该匹配 //:resName[PIGIRON]是“生铁” 字符串名称[]{“木材”、“砖”、“谷物”、“大麻”、“羊毛”、“原金属”、“蜂蜜”、“盐”、“金属制品”、“蜂蜜酒”、“布”、“啤酒”、“鲟鱼”、“衣服”、“奶酪”、“沥青”、“毛皮”、“肉”、“葡萄酒”、“香料”}; 枚举{爱丁堡、斯卡伯勒、波士顿、伦敦、布鲁日、哈勒姆、尼姆威根、格罗宁根、科隆、明登、不来梅、埃尔福特、汉堡、吕贝克、罗斯托克、柏林、里姆、弗伦斯堡、奥尔堡、奈夫斯特德、卑尔根、斯塔万格、奥斯陆、斯德哥尔摩、哥德堡、马尔默、阿胡斯、维斯比、斯特廷、波森、布雷斯劳、丹泽、索恩、华沙、科尼斯伯格、考纳斯、里加、雷瓦尔、赫尔辛基、诺夫戈od,TOTALTOWNS}; 字符串城镇名称[]{“爱丁堡”、“斯卡伯勒”、“波士顿”、“伦敦”、“布鲁日”、“哈勒姆”、“尼姆威根”、“格罗宁根”、“科隆”、“敏登”、“不来梅”、“埃尔福特”、“汉堡”、“吕贝克”、“罗斯托克”、“柏林”、“成熟”、“弗伦斯堡”、“奥尔堡”、“奈夫斯特”、“卑尔根”、“斯塔万格”、“奥斯陆”、“斯德哥尔摩”、“哥德堡”、“马尔默”、“阿胡斯”、“维斯比”、“斯蒂丁”、“波森”,“布雷斯劳”、“丹泽”、“索恩”、“华沙”、“科尼斯堡”、“考纳斯”、“里加”、“雷瓦尔”、“赫尔辛基”、“诺夫哥罗德”}; 类资源 { 公众: 浮动需求、生产、业务需求、业务生产; //此函数称为构造函数,在每次创建新资源时运行 //在本例中,它将0分配给所有对象 资源() { 需求=0; 产量=0; 业务需求=0; 商业生产=0; } 浮网 { 退货(本次->生产-本次->需求); } 浮动业务网() { 返回(此->业务生产-此->业务需求); } }; 阶级城镇 { 公众: //指向每个资源对象的指针数组 资源*resList[TOTALRESOURCES]; //这是城镇的建设者 镇() { //循环遍历数组,并在每个数组中创建一个新的资源对象 //资源构造函数指定默认值0。 for(int i=0;i_C++_Pointers_For Loop_Enums_Instances - Fatal编程技术网

C++ 使用枚举和for循环创建类的实例 enum{木材、砖块、谷物、大麻、羊毛、生铁、蜂蜜、盐、金属制品、蜂蜜酒、布、啤酒、鳕鱼、衣服、奶酪、沥青、毛皮、肉、酒、香料、总资源}; //每个资源名称的字符串数组 //只要它们与枚举的顺序相同,所有内容都应该匹配 //:resName[PIGIRON]是“生铁” 字符串名称[]{“木材”、“砖”、“谷物”、“大麻”、“羊毛”、“原金属”、“蜂蜜”、“盐”、“金属制品”、“蜂蜜酒”、“布”、“啤酒”、“鲟鱼”、“衣服”、“奶酪”、“沥青”、“毛皮”、“肉”、“葡萄酒”、“香料”}; 枚举{爱丁堡、斯卡伯勒、波士顿、伦敦、布鲁日、哈勒姆、尼姆威根、格罗宁根、科隆、明登、不来梅、埃尔福特、汉堡、吕贝克、罗斯托克、柏林、里姆、弗伦斯堡、奥尔堡、奈夫斯特德、卑尔根、斯塔万格、奥斯陆、斯德哥尔摩、哥德堡、马尔默、阿胡斯、维斯比、斯特廷、波森、布雷斯劳、丹泽、索恩、华沙、科尼斯伯格、考纳斯、里加、雷瓦尔、赫尔辛基、诺夫戈od,TOTALTOWNS}; 字符串城镇名称[]{“爱丁堡”、“斯卡伯勒”、“波士顿”、“伦敦”、“布鲁日”、“哈勒姆”、“尼姆威根”、“格罗宁根”、“科隆”、“敏登”、“不来梅”、“埃尔福特”、“汉堡”、“吕贝克”、“罗斯托克”、“柏林”、“成熟”、“弗伦斯堡”、“奥尔堡”、“奈夫斯特”、“卑尔根”、“斯塔万格”、“奥斯陆”、“斯德哥尔摩”、“哥德堡”、“马尔默”、“阿胡斯”、“维斯比”、“斯蒂丁”、“波森”,“布雷斯劳”、“丹泽”、“索恩”、“华沙”、“科尼斯堡”、“考纳斯”、“里加”、“雷瓦尔”、“赫尔辛基”、“诺夫哥罗德”}; 类资源 { 公众: 浮动需求、生产、业务需求、业务生产; //此函数称为构造函数,在每次创建新资源时运行 //在本例中,它将0分配给所有对象 资源() { 需求=0; 产量=0; 业务需求=0; 商业生产=0; } 浮网 { 退货(本次->生产-本次->需求); } 浮动业务网() { 返回(此->业务生产-此->业务需求); } }; 阶级城镇 { 公众: //指向每个资源对象的指针数组 资源*resList[TOTALRESOURCES]; //这是城镇的建设者 镇() { //循环遍历数组,并在每个数组中创建一个新的资源对象 //资源构造函数指定默认值0。 for(int i=0;i

C++ 使用枚举和for循环创建类的实例 enum{木材、砖块、谷物、大麻、羊毛、生铁、蜂蜜、盐、金属制品、蜂蜜酒、布、啤酒、鳕鱼、衣服、奶酪、沥青、毛皮、肉、酒、香料、总资源}; //每个资源名称的字符串数组 //只要它们与枚举的顺序相同,所有内容都应该匹配 //:resName[PIGIRON]是“生铁” 字符串名称[]{“木材”、“砖”、“谷物”、“大麻”、“羊毛”、“原金属”、“蜂蜜”、“盐”、“金属制品”、“蜂蜜酒”、“布”、“啤酒”、“鲟鱼”、“衣服”、“奶酪”、“沥青”、“毛皮”、“肉”、“葡萄酒”、“香料”}; 枚举{爱丁堡、斯卡伯勒、波士顿、伦敦、布鲁日、哈勒姆、尼姆威根、格罗宁根、科隆、明登、不来梅、埃尔福特、汉堡、吕贝克、罗斯托克、柏林、里姆、弗伦斯堡、奥尔堡、奈夫斯特德、卑尔根、斯塔万格、奥斯陆、斯德哥尔摩、哥德堡、马尔默、阿胡斯、维斯比、斯特廷、波森、布雷斯劳、丹泽、索恩、华沙、科尼斯伯格、考纳斯、里加、雷瓦尔、赫尔辛基、诺夫戈od,TOTALTOWNS}; 字符串城镇名称[]{“爱丁堡”、“斯卡伯勒”、“波士顿”、“伦敦”、“布鲁日”、“哈勒姆”、“尼姆威根”、“格罗宁根”、“科隆”、“敏登”、“不来梅”、“埃尔福特”、“汉堡”、“吕贝克”、“罗斯托克”、“柏林”、“成熟”、“弗伦斯堡”、“奥尔堡”、“奈夫斯特”、“卑尔根”、“斯塔万格”、“奥斯陆”、“斯德哥尔摩”、“哥德堡”、“马尔默”、“阿胡斯”、“维斯比”、“斯蒂丁”、“波森”,“布雷斯劳”、“丹泽”、“索恩”、“华沙”、“科尼斯堡”、“考纳斯”、“里加”、“雷瓦尔”、“赫尔辛基”、“诺夫哥罗德”}; 类资源 { 公众: 浮动需求、生产、业务需求、业务生产; //此函数称为构造函数,在每次创建新资源时运行 //在本例中,它将0分配给所有对象 资源() { 需求=0; 产量=0; 业务需求=0; 商业生产=0; } 浮网 { 退货(本次->生产-本次->需求); } 浮动业务网() { 返回(此->业务生产-此->业务需求); } }; 阶级城镇 { 公众: //指向每个资源对象的指针数组 资源*resList[TOTALRESOURCES]; //这是城镇的建设者 镇() { //循环遍历数组,并在每个数组中创建一个新的资源对象 //资源构造函数指定默认值0。 for(int i=0;i,c++,pointers,for-loop,enums,instances,C++,Pointers,For Loop,Enums,Instances,我在这个项目中花了大约5天的时间,发现我的初始代码存在一些严重的问题(很难添加新功能和更改内容).因此,我退了一步,尝试以更简洁的方式构建我的类,同时也能够在稍后的循环中遍历town的每个实例,以便轻松更新demand、production、businessNeeds和businessProduction值。在此之前,我复制和粘贴了大约6行代码40次 我想知道: (A) 是否可以执行我想要的操作?例如,我是否可以使用枚举和for循环来构造town的实例 (B) 如何循环遍历每个城镇,以便向资源变

我在这个项目中花了大约5天的时间,发现我的初始代码存在一些严重的问题(很难添加新功能和更改内容).因此,我退了一步,尝试以更简洁的方式构建我的类,同时也能够在稍后的循环中遍历town的每个实例,以便轻松更新demand、production、businessNeeds和businessProduction值。在此之前,我复制和粘贴了大约6行代码40次

我想知道:

(A) 是否可以执行我想要的操作?例如,我是否可以使用枚举和for循环来构造town的实例

(B) 如何循环遍历每个城镇,以便向资源变量添加值

(C) 一个三年级水平的关于如何为类似目的使用指针的解释也很好

:)谢谢!

intmain()
{
std::矢量阵列;
//我在这里干什么?
对于(int i=0;i
在主功能中,使用与resList相同的方法初始化城镇对象,因此:

int main()
{
    std::vector<town*> townArray;
    //What do I do here?
    for (int i = 0; i < TOTALTOWNS; i++)
    {
         town* pTown = new(std::nothrow) town;
         townArray.push_back (pTown);
    }
    std::vector<town*>::iterator iter = townArray.begin();
    for (;iter != townArray.end(); iter++) {
        (*iter); // gives access to individual objects
    }
    system("pause");
    return 0;
}

该程序的目标是什么?它需要什么样的输入?作为输出它应该产生什么?
resource*resList[TOTALRESOURCES];
可以是
resource resList[TOTALRESOURCES];
为了避免手动内存管理,并遵守0/3/5规则,该程序应该从.csv中读取城镇人口和企业的需求和生产值,并通过另一个.csv文件输出我需要加载和卸载的资源的位置和数量。切勿推荐/使用
系统(“暂停”)
EVER。即使原始作者使用了它。根据提供的代码,您应该通过引用而不是指针来传递数组。非常感谢!我让它工作了,我花了一段时间才意识到我必须使用townName[1]->resList[1]->demand调用第二个城镇第二个资源的demand。应该可以很好地工作。@Jarod42您关于枚举的说法是对的,对此表示抱歉。我已经编辑掉了该部分。
int main()
{
    std::vector<town*> townArray;
    //What do I do here?
    for (int i = 0; i < TOTALTOWNS; i++)
    {
         town* pTown = new(std::nothrow) town;
         townArray.push_back (pTown);
    }
    std::vector<town*>::iterator iter = townArray.begin();
    for (;iter != townArray.end(); iter++) {
        (*iter); // gives access to individual objects
    }
    system("pause");
    return 0;
}
town* townName[TOTALTOWNS]
for (int i = 0; i < TOTALTOWNS; i++)
{
     townName[i]= new town();
}
for (int i = 0; i < TOTALRESOURCES; i = i + 1)  
{
    switch(i)
    {
        case WOOD:
            townName[EDINBURGH]->resList[WOOD]->demand= yourValue;
            break;
        case BRICK:
            break;

    }
}
for (int i = 0; i < TOTALTOWNS; i = i + 1)  
{
    switch(i)
    {
        case EDINBURGH:
            break;      //etc.
    }
}
updateTownResources(town* (*townName)[TOTALTOWNS], int townEnum, int resourceEnum, int dValue, int pValue )
{
    townName[townEnum]->resList[resourceEnum]->demand= dValue;
    townName[townEnum]->resList[resourceEnum]->production= pValue;
    //etc...
}