행운을 지닌 벡터에 저장된 객체의 getter 메소드에 액세스하려고합니다. 컴파일 할 때 오류는 없지만 getter에 액세스하려고하면 프로그램이 중단됩니다.벡터에서 객체의 getter에 액세스하지 못했습니다.
내 개체는 Item
이라는 클래스이며 Item
에 대한 포인터로 벡터를 초기화합니다. 나는 그것이 벡터에서가 아닌 외부 때 그것은 단지 일이 std::cout << bag[0]->getID() << std::endl;
처럼 게터에 액세스하려고 할 때
vector<Item*> bag = vector<Item*>(someSize);
프로그램
이 실패합니다. (.bag
빈 벡터로 밖으로 시작합니다) :
'bag'은 0으로 초기화 된 someSize 요소를 포함합니다. 즉 유효하지 않은 포인터입니다. –
개체가 아닌 포인터를 저장해야하는 이유가 있습니까? 객체를 저장하면 훨씬 간단 해집니다. 왜냐하면 벡터가 생성하고 파괴하기 때문입니다. –
동일한 유형의 객체를 다시 초기화하지 않으니까 Mike – Hayden