最赞回答 / Alienware01
#include<iostream>using std::ostream;using std::istream把using namespace std;换成上面代码 vc6不兼容问题
2017-02-14
最赞回答 / T_h_e_A_noends
我明白了 elem是一个引用,elem = stack[top];虽然int elem = 0;但是其实执行代码时elem就是top了。
2017-02-10
最赞回答 / 慕粉3829398
因为头文件主要用于函数和变量的声明,本身无法编译。虽然可以在头文件中直接写上代码的实现,但该部分代码只有在程序运行的时候才能够被调用,无法单独编译,所以在定义类的时候,通常会拆成"*.h"和"*.cpp"两个文件来保存
2017-01-12
最赞回答 / brilliantShirley
成员函数和数据成员一样都是属于类的成员。可以通过实例化类来调用成员函数。而普通的全局函数和类中的成员函数不同,不需要对象就可以调用。
2017-01-01
MyStack<char> *pStack = new MyStack<char>(30);
int mod = 0;
char modchar;
int N = 13548;
while (N != 0)
{
mod = N%HEXADECIMAL;
if (mod < 10)
{
modchar = mod + 48;
}
else
{ modchar = (mod - 10) + 'A'; }
pStack->push(modchar);
N /= HEXADECIMAL;
}
pStack->stackTraverse(false);
int mod = 0;
char modchar;
int N = 13548;
while (N != 0)
{
mod = N%HEXADECIMAL;
if (mod < 10)
{
modchar = mod + 48;
}
else
{ modchar = (mod - 10) + 'A'; }
pStack->push(modchar);
N /= HEXADECIMAL;
}
pStack->stackTraverse(false);
2016-12-24
老师最后一点其实错了,default 其实没有必要写,只要把pNeedStack->pop(currentNeed)改为
if(!pNeedStack->pop(currentNeed))
{
currentNeed=0;
}便够了,第一次输入“【()】】“显示错误是因为,循环到倒数第二个字符时,pNeedStack栈为空导致pNeedStack->pop(currentNeed)返回了一个false,currentNeed没有置于0,仍为”】“,导致循环到最后一个字符时str[4]==currentNeed,str[4]没有入栈,pStack最后为空才会出错.把crrentNeed置于0便好
if(!pNeedStack->pop(currentNeed))
{
currentNeed=0;
}便够了,第一次输入“【()】】“显示错误是因为,循环到倒数第二个字符时,pNeedStack栈为空导致pNeedStack->pop(currentNeed)返回了一个false,currentNeed没有置于0,仍为”】“,导致循环到最后一个字符时str[4]==currentNeed,str[4]没有入栈,pStack最后为空才会出错.把crrentNeed置于0便好
2016-11-19