我想知道,如何循环遍历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();
}
答案 0 :(得分: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
。
答案 1 :(得分:2)
如果我正确理解你,你可能想要更多这样的东西:
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)
这样的构造函数。
恕我直言......