类模板成员不存在错误

Class Template member doesn't exist error

本文关键字:不存在 错误 成员      更新时间:2023-10-16

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

类模板

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;
}

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

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
}