에 해당 주소를 누른 후 개체를 변경 : 나는 두 벡터에 클래스 B
의 객체를 다시 밀어 경우나는 질문이 벡터
class B : public class A {
public:
vector<int*> vec;
};
class A {
};
vector<A*> vec_a;
vector<B*> vec_b;
합니다. 그 후, 나는 클래스 B
의 대상이 안에 뭔가를 변경
B* b = new B;
vec_a.push_back(b);
vec_b.push_back(b);
,
같은 :
int* i = ....
vec_b[0].push_back(i);
가 vec_a
변화를합니까?
벡터 push_back 때만 사본을 생성한다는 것을 확인한 이후 혼란 스럽습니다. 그러나 위의 코드를 확인하면 변경됩니다. 두 벡터가 객체 b
의 공유 메모리를 가지고 있습니까?
감사
'vec_a'는 바뀌지 않으며, B 객체 안에있는'vec'는 바뀌지 않습니다. – jrok