includeios 2017-03-24 06:04 采纳率: 0%
浏览 976

c++运算符重载vs2015中报错,而用vc6.0不会报错

图片说明
#include "stdafx.h"
#include
#include
using namespace std;
templateclass stack {
int top;
T *elements;
int maxsize;
public:
stack(int = 20);
~stack() { delete[]elements; }
void push(const T&x);
T pop();
T getelem(int i);
void makeempty() { top = -1; }
bool isempty()const { return top == -1; }
bool isfull()const { return top == maxsize - 1; }
friend ostream &operator<<(ostream&, const stack&);//T必不可少
};
templatestack::stack(int max) {
maxsize = max;
top = -1;
elements = new T[maxsize];
assert(elements != 0);
}
template ostream& operator<<(ostream& s, const stack& s1) {//T必不可少
for (int i = 0; i <= s1.top; i++) s << s1.elements[i] << ' ';
s << endl;
return s;
}
templatevoid stack::push(const T&data) {
assert(!isfull());
elements[++top] = data;
}
templateT stack::pop() {
assert(!isempty());
return elements[top--];
}
templateT stack::getelem(int i) {
assert(i <= top&&i >= 0);
return elements[i];
}
void main()
{
stack s;
s.push(1);
cout << s << endl;
}

  • 写回答

4条回答

  • 深蓝和红叶 2017-03-24 07:48
    关注

    类声明里要template<T>加上

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料