이 루프에서 나는 svg 태그의 자식에 toString()
메서드를 호출합니다. 그러나 매번 첫 번째 반복에서 세그먼트 분할 오류가 발생합니다. 이 이미지에서 볼 수 있듯이 TagG 2 차일을 가지고 있기 때문에예기치 않은 반복자 동작
std::list<Tag*> children;
std::string TagSvg::toString() const{
if(this->getChildren().empty()) return "<svg/>";
std::string temp="";
temp+="<svg>\n";
for(std::list<Tag*>::const_iterator it=this->getChildren().begin(); it != this->getChildren().end(); ++it){
temp+=(*it)->toString();
}
temp+="</svg>\n";
return temp;
}
std::list<Tag*> Tag::getChildren() const{
return children;
}
, SVG 태그를 차일을 가지고, 그것은 첫 번째 반복에서 TagG에 toString()
를 호출해야하지만, 심지어 당신이 볼 수있는 제대로 반복자를 설정하지 않습니다 dereferenced iterator에는 0 개의 자식 및 이상한 속성이 있습니다. 누군가 내가 잘못 본 것을 보여줄 수 있습니까? 감사!
함수의 getChildren 코드를 붙여주십시오. 가치로 돌아 오나요? – 4pie0
이 "temp + = (* it) -> toString();을 변경할 수 있습니까?" "temp + = it-> toString();"에 추가하십시오. 이? –