私がそのようなクラスを持っている場合(大まかな構文を許してください):
class Z{
public:
void method1();
void method2(vector<X>& v);
void method3(vector<X>& v);
private:
std::vector<X> myvec;
}
基本的に、myvecをmethod1()からmethod2()を介してmethod3()に渡し、そこで変更します。私の method1() が次のようになっている場合:
void Z::method1(){
vector<X> v = z::myvec; //What do I have to do with this line so that the changes
method2(v); //made to v in method3() are permanent and not lost once
} //method1() returns?
void Z::method2(vector<X>& v){
method3(v);
}
//Modify vector<X> myvec
void Z::method3(vector<X>& v){
v.push_back(<something>);
}
method1() が返されると、ベクトルに加えられた変更が永続的で失われないように、method3() のベクトルを変更するにはどうすればよいですか?