0

ベクトルを実装していますが、何らかの理由でヘッダー ファイルに次のエラーが表示され続けます。

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;

};

コードを盲目的に見つめていますが、構文エラーは見つかりません。これは何が原因ですか?

4

1 に答える 1

7

この行の最後にある:を;に置き換えます。

void CopyValues(Iterator pBegin, Iterator pEnd, Iterator pTarget):
于 2012-04-15T18:34:27.523 に答える