永发信息网

C++怎么类外定义模板类的成员函数? 模板参数怎么调用?

答案:3  悬赏:80  手机版
解决时间 2021-04-05 13:20
C++怎么类外定义模板类的成员函数? 模板参数怎么调用?
最佳答案
#ifndef STACK_H
#define STACK_H

#include
#include


template
class Stack
{
public:
   Stack();

public:
   
   void push(const ItemType& item);

   
   ItemType pop();

   
   ItemType peek() const;

   
   void clearStack();

private:
   
   bool isEmpty() const;

   
   bool isFull() const;

private:
   
   static const int maxStackSize = 50;

private:
   
   ItemType array[maxStackSize];

   
   int top;
};

template
Stack::Stack() : top(-1)
{}

template
void Stack::push(const ItemType& item)
{
 if (isFull())
 {
  std::cerr << "Stack overflow!" << std::endl;
  exit(EXIT_FAILURE);
 }
 top++;
 array[top] = item;
}

template
ItemType Stack::pop()
{
 if (isEmpty())
 {
  std::cerr << "Attempt to pop an empty stack!" << std::endl;
  exit(EXIT_FAILURE);
 }
 ItemType temp = array[top];
 top--;

 return temp;
}

template
ItemType Stack::peek() const
{
 if (isEmpty())
 {
  std::cerr << "Attempt to peek an empty stack!" << std::endl;
  exit(EXIT_FAILURE);
 }
 return array[top];
}

template
bool Stack::isEmpty() const
{
 return (top == -1 ? true : false);
}

template
bool Stack::isFull() const
{
 return (top == (maxStackSize - 1) ? true : false);
}

template
void Stack::clearStack()
{
 //将所有元素弹出栈
 while (!isEmpty())
 {
  pop();
 }
}

#endif   //STACK_H调用的方法,如下:
#include

#include"stack.h"

int main()
{
 Stack charStack;
 charStack.push('h');
 charStack.peek();
 charStack.pop();
 charStack.clearStack();

 return EXIT_SUCCESS;
}
全部回答
包含模板的声明
找哟个有钱的干爹
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
古代根雕艺术的诗词关于根雕的赞美诗词
桂林那家技校好
别克君威气囊线束插头在什么部位,
从万源路儿科医院到上海动物园坐号几地铁
暖宝宝里面是什么东西,暖宝宝贴里边是什么东
单选题________surprisedmemostwasthat
头皮磕破了,怎么办?
自建房再加高一定要按照原来的设计吗?
描写苏州的名句,苏州的名句
铝表面致密的氧化膜是钝化现象吗
泗阳县高考体检要不要衣服脱到全裸啊?马上就
广东那里有卖铝板的?
选出全有语病的一组句子:① 广泛阅读好的文
家具什么意思,家具拆单是做什么的?
想要问问你敢不敢…… 是什么歌啊? (刘若英
推荐资讯
单选题某人的甲血管与心室相通,流的是静脉血
岁月感悟唯美句子,关于人生岁月感悟的句子
我的XBOX360无线手柄驱动碟不见了官网下的装
猪网油是什么东西?
古诗文阅读(20分)观书有感朱熹半亩方塘一鉴
求一张电脑配置单,那个功耗要在300w以上400
如何断开与EXCEL表格的数据链接
如图所示,两个完全相同的量筒分别盛有质量相
单选题赤道上方某处有竖立天空的避雷针,当带
psp寂静岭破碎的记忆的剧情
根据下面的提示,写一篇100词左右的题为“Tra
人的体细胞中有________对染色体,其中性别决
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?