假设我有一个名为A的课程:
class A{
private:
int myarray[3];
int other;
public:
void setarray(int cell_one, int cell_two, int cell_three);
// ^ Sets values passed to function to elements in myarray
}
我的主要有两个A对象:
int main(){
A a_one;
A a_two;
a_one.setarray(5,3,6);
}
有没有办法将a_one中的数组复制到a_two中的数组中,而不设置其他值相等?
答案 0 :(得分:1)
我建议改用std::array
。然后,您可以通过简单的赋值实现复制。
例如,您可以创建一个函数,该函数返回对数组的(可能的const
)引用,并使用这些函数进行赋值。也许像是
struct A
{
std::array<int, 3> a;
// Other member variables...
std::array<int, 3> const& get_array() const
{
return a;
}
std::array<int, 3>& get_array()
{
return a;
}
};
// ...
a_one.get_array() = a_two.get_array();
答案 1 :(得分:0)
嗯,有明显的方法 - 制作一个可以调用的方法:
public:
void setArrayFromA(const A & him)
{
for (int i=0; i<3; i++) myarray[i] = him.myarray[i];
}
[...]
a_one.setArrayFromA(a_two);
答案 2 :(得分:0)
班级定义:
class A{
private:
std::array<int,3> myarray;
int other;
public:
void setarray(int cell_one, int cell_two, int cell_three);
// ^ Sets values passed to function to elements in myarray
}
然后您可以将其设置为:
int main(){
A a_one;
A a_two;
a_one.setarray(5,3,6);
a_two.myarray = a_one.myarray;
}