类模板成员不存在错误

时间:2015-04-13 04:40:29

标签: c++ templates

我只是在学习模板,在我尝试使用该模板时,我遇到了类模板和调用成员函数之间的错误。

班级模板

template<class T> class MyVector{
    private:
       int dataMembers;
    public:
        template<class T>
        void MyVector<T>::push_back(){//body of the function}
};

驱动程序

int main()
{ 
     MyVector<Account*> bankAccounts;
     bankAccounts.push_back(//dynamic object);
     //error: class MyVector<Account*> has no member "push_back"
     //... 
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您可以在类中声明和定义模板函数,如下所示:

template<class T>
class MyVector {
    private:
       int dataMembers;
    public:
        void push_back( T arg ) {
            //some code
        }
};

或者在外面定义身体:

template<class T>
class MyVector {
    private:
       int dataMembers;
    public:
        void push_back( T arg );
};

template<class T>
void MyVector<T>::push_back( T arg ) {
    //some code
}