我試圖覆蓋運算符< <爲我的堆棧類打印所有項目,在這種情況下,板,但我收到了分段錯誤。我不知道這意味着什麼或如何解決它。分割錯誤(核心轉儲)當覆蓋運算符<<爲堆棧
ostream& operator << (ostream &out, Stack &stack){
int a = stack.getStackCount();
string outString = "";
PlateNode temp = PlateNode(stack.getTop().getPlate());
for(int i =0;i<a;i++){
outString = outString + ", " + temp.getPlate().getName();
temp = temp.getNextNode();
}
out << outString;
return out;
}
這就是我試圖重寫操作,而我主要是:
int main()
{
Stack nullStack = Stack();
nullStack.push(pNode);
nullStack.push("me");
cout <<"Reached c"<<endl;
cout<<nullStack;
}
錯誤是不存在的主要是進入最後的前行。 請幫忙!
編輯:這是我整個的代碼是否有幫助,對不起,它不完全註釋:
https://docs.google.com/document/d/16pg01muz0S5IMlXBahdL-JyVE5y7buzOVHYEOn_jyvE/edit?usp=sharing
如果程序崩潰,可能是由於你的Stack類。 – 2015-02-07 03:38:30
你的堆棧類的定義是什麼?我懷疑'PlateNode temp = PlateNode(stack.getTop()。getPlate());'你是問題,因爲你基本上正在創建一個新的堆棧。 – NathanOliver 2015-02-07 03:39:19
分段錯誤是由錯誤的解引用導致的。您發佈的代碼不會考慮任何內容,所以錯誤必須在其他地方。你知道如何使用調試器嗎? – 2015-02-07 03:39:51