Heim > häufiges Problem > Was bedeutet template?

Was bedeutet template?

爱喝马黛茶的安东尼
Freigeben: 2019-07-25 16:36:30
Original
16156 Leute haben es durchsucht

Was bedeutet template<class type>?

Die Vorlagenklasse beginnt mit diesem Code: template

template Sie können damit eine Vorlagenklasse oder eine Vorlagenfunktion definieren. wo Klasse ist Der richtige Typ repräsentiert einen Typ.

Klasse wird als Typname der Variablen betrachtet. Die Variable akzeptiert den Typ als ihren Wert.

Fügen Sie die Vorlageninformationen in eine Header-Datei ein und erstellen Sie stacktp.h

#ifndef STACKTP_H_
#define STACKTP_H_
// 建立模板
template<class Type>
class Stack
{
private:
    enum {MAX=10};
    Type items[MAX];
    int top;
public:
    Stack();
    bool isempty();
    bool isfull();
    bool push(const Type & item);
    bool pop(Type & item);
};
template<class Type>
Stack<Type>::Stack()
{
    top=10;
}
template<class Type>
bool Stack<Type>::isempty()
{
    return top==0;
}
template<class Type>
bool Stack<Type>::isfull()
{
    return top==MAX;
}
template<class Type>
bool Stack<Type>::push(const Type &item)
{
    if(top<MAX)
    {
        items[top++]=item;
        return true;
    }
    else
        return false;
}
template<class Type>
bool Stack<Type>::pop(Type & item)
{
    if(top>0)
    {
        item=items[--top];
        return true;
    }
    else
        return false;
}
#endif
Nach dem Login kopieren

Verwandte Empfehlungen: "FAQ"

Erstellen Sie die Quelldatei stacktem . cpp;

#include<iostream>
#include<string>
#include<cctype>
#include"stacktp.h"
using namespace std;
int main()
{
    Stack<string> st;// 创建一个空的stack,和前面的模板联系起来
    char ch;
    string po;
    cout<<"Please enter A to add a purchase order.\n"
        <<"P to precess a PO,or Q to quit."<<endl;
    while(cin>>ch && toupper(ch)!=&#39;Q&#39; )
    {
        while(cin.get()!=&#39;\n&#39;)
        {
            continue;
        }
        if(!isalpha(ch))
        {
            cout<<&#39;\a&#39;;
            continue;
        }
        switch(ch)
        {
        case &#39;A&#39;:
        case &#39;a&#39;:cout<<"Enter a PO number to add:"<<endl;
            cin>>po;
            if(st.isfull())
            {
                cout<<"stack already full"<<endl;
            }
            else
            {
                st.push(po);
            }
            break;
        case &#39;P&#39;:
        case &#39;p&#39;:
            if(st.isempty())
            {
                cout<<"stack already empty"<<endl;
            }
            else
            {
                st.pop(po);
                cout<<"PO #"<<po<<" popped\n";
                break;
            }
        }
        cout<<"Please enter A to add a purchase order,\n"
            <<"P to process a PO,or Q to quit.\n";
    }
    cout<<"Bye!"<<endl;
        return 0;
}
Nach dem Login kopieren

Was bedeutet template<class type>?

Das obige ist der detaillierte Inhalt vonWas bedeutet template?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage