오브젝트를 작성하는 태스크가 있습니다. Stos 오브젝트 힙을 가진 오브젝트 Obiekt이 있으며, 원하는대로 추가 할 수 있습니다.오브젝트 포인터의 벡터가 홀수 값을 반환합니다.
프로그램이 동적 배열을 더 잘 지원할 수 있도록하기 위해 Vector를 사용하기로 결정했습니다. 전체 구현이 완벽하게 실행되는 것 같습니다. 반환 된 값은 완전히 꺼져 있습니다.
class Obiekt {
private:
int id;
public:
Obiekt::Obiekt(int i) {
id = i;
}
void Obiekt::display() {
cout << "This object has id of: " << id << endl;
}
};
class Stos {
private:
vector < Obiekt* > stos;
public:
Stos::Stos(Obiekt n) {
add(n);
}
void Stos::add(Obiekt n) {
stos.push_back(&n);
}
void Stos::display() {
cout << endl << "===HEAP DISPLAY===" << endl;
for (int i = 0; i < stos.size(); i++) {
stos[i]->display();
}
}
};
void Zad1()
{
Obiekt obj1(5);
Obiekt obj2(23);
Stos s1(obj1);
s1.add(obj2);
s1.display();
getchar();
}
그리고 결과의 존재 : 여기서 은 코드 예이다 -858993460
:
=== HEAP 표시 ===
이 객체의 ID를 갖는다 이 개체의 ID : 9805925
저는 아닙니다. cpp 전문가와 문제가 stos.push_back(&n)
부분과 관련되어 있다고 생각하지만 ID가 너무 왜곡되는 순간을 포착 할 수 없습니다.
아마도 멍청한 질문 일 겁니다. 시작했을 때 미안 해요.
도움이 될 것입니다.
일했다! 감사. 답변으로 게시 할 수 있습니까? – aln447
게시 됨 답변 됨 : –
가장 간단한 해결책은 벡터를 벡터로 설정하는 것입니다. < Obiekt > stos; –