다음과 같은 기능과 다중 번호가 쌍, 합리성 및 복합으로 상속되는 클래스 계층 구조가 있습니다. 이 모든 것은 Multinumber에서 가상 인 공유 기능입니다. 내 문제는 다음과 같은 코드입니다. 그것이 지금 쓰여지는 방식으로 newElement 변수는 Multinumber**
인 setArray
에 추가 될 때 범위를 벗어납니다.이 함수 내에서 메모리를 할당하는 방법을 찾아야합니다. 이상하게도 함수에 전달 된 매개 변수는 첫 줄에 인쇄 할 때도 항상 공백입니다. cout<<newElement->tostring();
아무도 나에게 무엇이 잘못되었는지 말해 줄 수 있습니까?이 함수 내에서 메모리를 어떻게 할당합니까?
bool Set::addElement(Multinumber* newElement)
{
bool success = false;
if(isFull())
{
resize();
}
if(!isMember(newElement))
{
setArray[numElements] = newElement;
numElements++;
success = true;
}
return success;
}
편집 : 포스터가 올바른지 예,이 메모리 문제가 std::vector<boost::shared_ptr<Multinumber>> setArray
으로 Multinumber** setArray
을 대체 방지하기 위해 숙제
더 많은 코드가 필요합니다. 'Set' 클래스 전체를 게시하십시오. 'Multinumber'의 구현을 보는 것도 편리 할 것입니다. –