1

我想知道,如何遍历一个 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();
 }
4

2 回答 2

2

首先,您的getx方法应该 return 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

于 2012-10-20T05:14:28.937 回答
2

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

点.h:

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

点.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; }

主文件

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).

恕我直言 ...

于 2012-10-20T05:15:12.427 回答