为什么要用面向对象码代码= =、

比如吧实现栈

用结构化的思想这样写

#include <iostream>
using namespace std;
#define  STACK_SIZE 100
struct Stack 
{
int top;
int buffer[STACK_SIZE];
};
bool push(Stack &s,int x){
if (s.top ==STACK_SIZE-1)
{
cout<<"Stack OverFlow!"<<endl;
return false;
}else{
s.top++;
s.buffer[s.top] = x;
return true;
}
}
bool pop(Stack &s,int &x){
if (s.top==-1)
{
cout<<"Empty Stack"<<endl;
return false;
}else{
x = s.buffer[s.top];
s.top--;
return true;
}
}
void showElement(Stack &s){
int temp = s.top;
for (int i = temp;i>=0;i--)
{
cout<<s.buffer[i]<<" ";
}
}
void main(){
Stack st;
st.top = -1;
int x;
push(st,12);
showElement(st);
push(st,13);
showElement(st);
pop(st,x);
showElement(st);
pop(st,x);
showElement(st);

}

感觉main方法里面用着的话总是很别扭恩。然后就是面向对象的代码奉上

#include <iostream>
using namespace std;
#define  STACK_SIZE 100
class Stack{
private:
int top;
int buffer[STACK_SIZE];
public:
Stack(){top = -1;}
bool push(int x);
bool pop(int &x);
};
bool Stack::push(int x){
if (top==STACK_SIZE-1)
{
cout<<"Stack OverFlow"<<endl;
return false;
}else{
top++;
buffer[top] = x;
return true;
}
}
bool Stack::pop(int &x){
if (top==-1)
{
cout<<"Empty Stack"<<endl;
return false;
}else{
x = buffer[top];
top--;
return true;
}
}
void main(){
Stack st ;
st.push(12);
st.push(13);
int x ;
st.pop(x);
cout<<x<<" ";
int y ;
st.pop(y);
    cout<<y<<" ";

}


啊哈,感觉面向对象用在顺手多了、、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值