循环穿过阵列

Loop through an array

本文关键字:阵列 循环      更新时间:2023-10-16

我想知道,如何通过int数组循环以获取其值并设置其值。我知道如何使用for循环立即获得,但是当我在用户创建的对象中使用并使用get set方法时,我不确定它的工作原理。

我完全是陌生的,我的讲座很少有指导。希望你们能帮助我。直到我所做的位置。

//point.h

class point {
private:
    int x[4];
public:
    int getx();
    void setx();
};  

//point.cpp

class point {
   point::getx(){
      // ??????
   }
   point::setx(){
      // ???????
   }

//main.cpp

 int main(){
     point objPoint;
     objPoint.setx(/* ???? */);
     ???? = objPoint.getx();
 }

首先,您的getx方法不仅应返回int*,不仅是int,而且您的setx应接收const int*作为参数。其次,在您的Point.cpp文件中,您不应该重新列出class point

int* point::getx() { //version with copying
    int* ans = new int[4];
    for (int i = 0; i < 4; i++) {
        ans[i] = x[i];
    }
    return ans;
}
void point::setx(const int* y) {
    for (int i = 0; i < 4; i++) {
        x[i] = y[i];
    }
}

然后您可以像这样使用它们

int y[4] = {1, 2, 3, 4};
int* z;
objPoint.setx(y);
z = objPoint.getx();

完成后不要忘记delete[] z

如果我正确理解您,您可能想要更多的东西:

point.h:

class Point{
private:
  int x, y;
public:
  int getx();
  int gety();
  void setx(int value);
  void sety(int value);
};  

point.cpp

int Point::getx() { return x; }
int Point::gety() { return y; }
void Point::setx(int value) { x = value; }
void Point::sety(int value) { x = value; }

main.cpp

int main(int argc, char *argv[])
{
  Point objPoint;
  objPoint.setx(1);
  int x = objPoint.getx();
  cout << "x=" << x << endl;
  return 0
}

更好的是,您可能希望定义诸如Point (int xvalue, int yvalue)的构造函数。

imho ...