C++类模板实现栈

定义类模板:

template <class 形参>

class 类名

{.....};


stack.h


#define maxsize 10

template<class type>

class myStack

{

       private:

          type object [ maxize];

           int  top;

      public:

              myStack();

             bool push(type e);

             bool pop(type &e);

             void print();

};

template <class type>

myStack <type>::myStack()

{

             top=-1;

}

template <class type>

myStack<type>::push(type e)

{

     if(top==maxsize-1)

           return false;

      esle

        {

                e=object[top--];

                 return true;

        }

}

template <class type>

bool myStack<type> ::pop(type &e)

{

      if(top==-1)

          return false;

        else

        {

                e=object[top--];

                return true;

         }

}

template <class type>

void myStack<type>::print()

{

    for(int i=0;i<=top;i++)

            cout<<object[i]<<" ";

    cout<<endl;

}


mystack.cpp


#include "stack.h"

#include "iostream"

using namespace std;

int main()

{

myStack<int> s;

int a=6,b=5;

s.push(a);

s.push(b);

s.print();

//由于type可以是任意参数,所以可以拿double尝试

myStack<double> s2;

double da=2.2,db=3.3;

s2.push(da);

s2.push(db);

s2.print();

cin,get();

return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容