最新回答 / BingBing_Elf
首先,我觉得你可能没明白栈顶元素的位置,它的位置一直是在一个空位置,这样才可以有位置来存储新的进栈元素,这也是老师说为什么m_iTop这个角标和元素个数相等的原因,也就是说,当你元素为5个时,存储的角标为0-4,但是你的m_iTop在5的位置。所以,在空栈的情况下,是不是首位置就应该是空的,即它的角标为0,当一个元素入栈后,就可以插入到角标为m_iTop的位置了,插入后一定要进行m_iTop++,让指针指向下一个位置,以便下一个元素的入栈。希望可以帮到你(✿◡‿◡)
2017-07-07
最赞回答 / 我是一只小蜗牛
因为C++ 默认的拷贝构造函数是浅拷贝,咋们案例是值这种东西,所以可以直接赋值;但是如果涉及到指针,那么用浅拷贝容易造成内存泄漏,因为你的地址是一样的,释放两次会出现内存泄漏,这时候你就要自己实现拷贝构造函数了,而不能使用默认的拷贝构造函数
2017-06-03
最新回答 / 晨墨_V
因为你是先入栈再赋值need。第一次循环的时候,need==0,所以直接need = ']',pNeed里有],第二次循环need==),然后满足条件。case'[':if (need != 0){cout << "第" << i + 1 << "次入另一个栈:";pNeed->push(need);cout << need<<endl;}need = ']';break;
2017-04-03
最赞回答 / 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