2012-04-15 5 views
0

私はベクトルを実装していて、何らかの理由で、私のヘッダファイルは、このエラーを言って続けて:C++ - コンパイルエラー

error C2590: 'CopyValues' : only a constructor can have a base/member initializer list 
      see reference to class template instantiation 'Vector<T>' being compiled 
error C2533: 'Vector<T>' : constructors not allowed a return type 
error C2760: syntax error : expected '{' not ';' 
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
error C2039: 'GetNewCapacity' : is not a member of 'Vector<T>' 

は、ここに私のヘッダーです:コードで盲目的に見つめ

template <class T> 
class Vector 
{ 
public: 
    typedef T* Iterator; 

    Vector(HeapAllocator* allocator); 
    Vector(HeapAllocator* allocator, size_t size); 
    ~Vector(); 

    size_t capacity(); 
    size_t size(); 
    bool empty(); 
    void clear(); 

    Iterator insert(Iterator position, const T& value); 
    void insert(Iterator position,size_t n, const T& value); 
    void insert(Iterator position,Iterator first, Iterator last); 

    void erase(); 

    void resize(size_t numElements); 

    void push_back(const T& item); 
    void pop_back(); 

private: 
    void CopyValues(Iterator pBegin, Iterator pEnd, Iterator pTarget):  // when I comment out this method, it compiles fine, why? 
    size_t GetNewCapacity(size_t currentCapacity); 

    T* mBegin; 
    T* mEnd; 
    T* mCapacity; 
    HeapAllocator* mAllocator; 

}; 

イムしかし、私は構文エラーを見つけることができません。これを引き起こしているのは何ですか?

+3

そこには何がありますか? – Mat

+0

';'(明らかに) –

答えて

7

この行の末尾に:を置き換えます。

void CopyValues(Iterator pBegin, Iterator pEnd, Iterator pTarget): 
+1

イエスです。ありがとうございます。 – KaiserJohaan

関連する問題