我想在我創建的類中使用stdlib堆棧,但我在動態創建它時遇到問題。動態分配stdlib堆棧?
這裏是我的頭文件「matcher.h」的相關代碼:
private:
stack<char> opens;
這裏是我創建僅分配堆棧的構造:
#include "matcher.h"
using namespace std;
//Creates a matcher object with the default values.
matcher::matcher()
{
opens = new stack<char>;
}
錯誤我得到低於:
matcher.cpp:19:17: error: no match for ‘operator=’ in ‘((matcher*)this)->matcher::opens = ((*(const std::deque<char, std::allocator<char> >*)(& std::deque<char, std::allocator<char> >())), (operator new(40u), (<statement>, ((std::stack<char>*)<anonymous>))))’
這對我說了std::stack
確實ñ不包含一個賦值運算符,這導致我到我的問題:
我應該使用什麼方法來獲得一個堆棧,如果它不包含賦值運算符將保留在我的匹配器對象中?
謝謝你的時間。
從Java或C#轉換時,您需要一個C++課程。 – 2012-02-29 17:46:52
我想教自己:) – Joshua 2012-02-29 22:11:43