1

int の配列をループしてその値を取得し、その値を設定する方法を知りたいです。forループを使用して即座に取得する方法は知っていますが、ユーザー作成オブジェクトで使用し、get setメソッドを使用してespを使用している場合、それがどのように機能するかわかりません。

私はこれにまったく慣れておらず、講義からのガイダンスはほとんどありません。皆さんが私を助けるのを手伝ってくれることを願っています. これは私が行ったところまでです。

//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メソッドは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; }

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)

私見では ...

于 2012-10-20T05:15:12.427 に答える