의 수명을 적용 : 분명히 아이가 부모보다 오래 안다음 코드를 고려 부모 개체
class Child {
vector<Object>::iterator it;
}
class Parent {
vector<Object> objects;
Child getChild(int idx) {
Child ret;
ret.it = objects.begin() + idx;
return ret;
}
}
을,하지만 난 그게 Child childThing = getParent().getChild(5)
같은 것을 호출을 시도하는 것이 합리적 일 것으로 예상된다. 이 문제를 어떻게 방지 할 수 있습니까? Parent
의 인스턴스를 유지하도록 적용 할 패턴이 있습니까? 가능하다면 그 내용이 꽤 복잡하기 때문에 objects
을 복사하고 싶지 않습니다.
개체를 복사하지 않고 자식'ret'를 복사합니다 ... – Jarod42
이 코드의 컨텍스트는 무엇입니까? 'Child :: it'은 반복자 매달림의 약속처럼 보입니다 – wasthishelpful
@ Jarod42'objects'는'Parent'의 벡터입니다. 'Child'를 복사하는 것은 괜찮습니다. 단지 반환 된 자식으로 벡터를 복사하고 싶지는 않습니다 :) – Managarm