为数组赋值

时间:2014-03-22 15:49:22

标签: c++ arrays

这只是我正在尝试的代码的大纲。请帮助我!

void surfaceintensity(int xpos,int ypos ,int zpos)
{
    x[1]=xpos;
    x[2]=ypos;
    x[3]=zpos;
}

假设我有一个对象t1,我已将值发送到函数表面强度为:

t1.surfaceintensity(10,20,30)

如果我按上述方式进行,则

的值为
x[1]=10;
x[2]=20;
x[3]=30;

如果不能,我如何将这些值分配给数组x[]

2 个答案:

答案 0 :(得分:1)

如果我理解正确,我认为我们的代码符合您的期望。但是,您应该使用数组索引0..2而不是1..3!

答案 1 :(得分:0)

我理解你的问题的方式,你有一个类(让我们称之为MyClass),它有一个成员函数surfaceintensity()。此成员函数将一些值分配给数组x的元素,该数组也是您的类的成员。

您不确定是否从成员函数内部向该数组赋值将实际更改其调用的实例的数组。如果是这种情况,那么请看下面的例子(只需复制/粘贴它,它应该编译):

#include <iostream>

class MyClass
{
public:
    MyClass()
    {
        x[0] = 0;
        x[1] = 0;
        x[2] = 0;
    }

    void surfaceintensity(int xpos,int ypos ,int zpos)
    {
        x[0]=xpos;
        x[1]=ypos;
        x[2]=zpos;
    }

    void print()
    {
        std::cout << x[0] << "/" << x[1] << "/" << x[2] << std::endl;
    }

private:
    int x[3];
};

int main()
{
    MyClass t1;
    t1.print();
    t1.surfaceintensity(10,20,30);
    t1.print();
    return 0;
}

这将打印

0/0/0
10/20/30

这表明您的问题的答案是:是的,为成员变量赋值确实会改变对象的内部状态。

我希望这就是我们所要求的。如果没有,请编辑您的问题并澄清。

相关问题