簡體   English   中英

錯誤:C ++中運算符=不匹配

[英]error: no match for operator=in C++

嗨,我在使用g ++ 4.1.2編譯時遇到此錯誤

“錯誤:操作符=中不匹配”(((PoolElementList *)this)-> PoolElementList :: i_currentElement =((PoolElementList *)this)-> PoolElementList :: i_elementList.std :: vector <_Tp,_Alloc> :: end與_Tp = ModifyTerminationPointReqInfo *,_Alloc = std :: allocator

PoolElements的定義如下:

template <class Element, Element *intialElementPtr>
class PoolElementList
{
        GenericMemoryPool <Element, intialElementPtr> *i_elementPoolPtr;

        vector <Element *> i_elementList;
        vector <Element *> i_currentElement;
public:

  //Define a constructor that takes in a pointer of the pool.
        PoolElementList(GenericMemoryPool <Element, intialElementPtr> *elementPool):
        i_elementPoolPtr (elementPool)
        { 
                i_currentElement = i_elementList.end();   //error is here**
        };

請有人可以解釋這可能出什么問題。 (這是在g ++ 2.9.x中編譯的)

如果(如您在評論中所說)希望i_currentElement成為std::vector<Element *>::iterator ,則必須將其聲明為一個。 只需更換

vector <Element *> i_elementList;

vector <Element *>::iterator i_elementList;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM