나는 사람들에게 클래스 이름을 가지고있다. 이 사람들에 대한 포인터를지도에 저장합니다.포인터로지도를 처리하는 방법은 무엇입니까?
map<string, People*> myMap;
나는 [people]을 사용하여지도를 만듭니다.
myMap["dave"]->sayHello();
그러나 이것은 세그먼트 오류를 제공하며 People 클래스의 생성자를 호출하지도 않습니다.
는 또한myMap.insert(std::make_pair("dave", new People()));
을 시도하지만 아무것도, 생성자가 아직 호출되지 않습니다 변경하지 않은 프로그램이 분할 오류이 코드 처리를 종료합니다.
포인터가 포함 된지도에 액세스하고 조작하려면 어떻게해야합니까? 왜 위의 작동하지 않는, 컴파일 시간 오류 또는 경고를 가져옵니다.
어떤 통찰력 많은 감사는지도 감안할 때 당신
또는 스마트 포인터, 'People'건설이 비싸면 –
분명히 설명해 주셔서 감사합니다! – user1356190