Error: Use of class template requires template argument list

20,634

Members of a template class are themselves templates parameterized by the parameters of their template class. When such a member is defined outside its class, it must explicitly be declared a template.

So you need change

void FOURTEEN::ReadData()

to

template <class T, int n>
void FOURTEEN<T, n>::ReadData()

And do the same thing to function DisplayData.

And there're some other errors:

In function ReadData, change

cin>>a.[i];

to

cin>>a[i];

and In function DisplayData, change

cin>>a.[i]<<'\t';

to

cout<<a[i]<<'\t';
Share:
20,634
user3326689
Author by

user3326689

Updated on July 26, 2022

Comments

  • user3326689
    user3326689 almost 2 years

    When I try to run my program this error shows up "error C2955: 'FOURTEEN' : use of class template requires template argument list"

    #include <iostream>
    using namespace std;
    template <class T, int n>
    class FOURTEEN
    {
    private:
        T a[n];
    public:
        void ReadData();
        void DisplayData();
    };
    void FOURTEEN::ReadData()
    {
        for(int i=0;i<n;++i)
            cin>>a.[i];
    }
    void FOURTEEN::DisplayData()
    {
        for(int i=0;i<n;++i)
            cin>>a.[i]<<'\t';
        cout<<endl;
    }
    int main()
    {
        FOURTEEN <int, 5>P;
    //Read data into array a of object P
        cout<<"Enter 5 numbers: ";
        P.ReadData();
    //display data of array a of object P
        P.DisplayData();
    
        system("pause");
        return 0;
    }
    

    Do I have to retype template somewhere else?