You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++类和函数中使用for循环遍历数组并复制x_coord元素

问题修正方案

第一步:先修正icon类的成员函数定义

你现有的Get_x_value存在两个问题:

  • 直接返回x_coord[16]属于数组越界访问,长度为16的数组合法下标范围是0~15
  • 没有入参,无法获取指定下标位置的元素
    修改后的类代码如下:
class icon : public pixel 
{
public:
    // 新增下标入参,用来获取对应位置的x_coord值
    float Get_x_value(int index);
private:
    // 保留你原有类内部的x_coord数组定义即可
    float x_coord[16]; 
};

float icon::Get_x_value(int index){
    // 可选增加边界判断避免非法访问
    if(index >=0 && index <16)
        return x_coord[index];
    // 越界时的默认返回值,可根据你的需求调整
    return -1;
}

第二步:修正数组复制函数的逻辑

你原有代码的循环条件i<16-1只能遍历到下标14,会漏掉最后一个元素,同时赋值逻辑需要调用传入的atIcon对象的Get_x_value方法取值,修改后的代码如下:

icon function(icon& atIcon){
    int x[16];
    for (int i =0; i<16; i++){
        // 从atIcon中取出第i个x_coord值,赋值给新数组x的第i位
        x[i] = atIcon.Get_x_value(i);
        // 输出验证直接打印x[i]即可
        cout << x[i] << endl;
    }
    return atIcon;
}

补充说明

如果你不想修改Get_x_value的原有定义,也可以在类内新增一个直接返回整个数组指针的成员函数,上述方案是侵入性最低、安全性最高的实现方式。

内容的提问来源于stack exchange,提问作者Dean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:36:03