如何将C++中的公有改为私有的。代码如下,求解答。

#include
#include

using namespace std;

typedef char Element;
class SeqStack{

public :
    int MaxSize;
    Element *elements;
    int top;
    int length;
    SeqStack(Element *e,int Size)
    {
        top=-1;
        length=0;
        elements=e;
        MaxSize=Size;
    }
   int PushSeqStack(Element element);
   void PopSeqStack();
   void ClearSeqStack();
   Element PeekSqeStack();

};
/** 向栈中压入元素,返回压入的结果(true/false) */
int SeqStack::PushSeqStack(Element element){
if(top == MaxSize- 1){
cout<<"栈已满"<<endl;
}
top++; //栈顶指针+1,以便加.01 004入新的元素
//将新插入的元素赋值给栈顶
elements[top] = element;
length++;

}

Element SeqStack::PeekSqeStack()
{
return elements[top];
}

void SeqStack::PopSeqStack(){
//返回栈顶指向的元素
//*element = elements[top];
//cout<<"弹出元素"<<elements[top]<<endl;
top--;
length--;

}
void SeqStack::ClearSeqStack(){
top = -1;
length = 0;
}

int main()
{
Element* e=new Element[100];
bool IsOk=true;
SeqStack Stack(e,100);
string s;
while(!cin.eof())
{
cin>>s;
Stack.ClearSeqStack();
for(int i=0;i<s.size();i++)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[')
{
Stack.PushSeqStack(s[i]);
}
else if(s[i]==']'||s[i]==')'||s[i]=='}')
{
if((Stack.PeekSqeStack()=='('&&s[i]==')')||(Stack.PeekSqeStack()=='{'&&s[i]=='}')||(Stack.PeekSqeStack()=='['&&s[i]==']'))
{
Stack.PopSeqStack();
}
else
{
IsOk=false;
}
}
}
if(IsOk==false)
{
cout<<"NO"<<endl;
IsOk=true;
continue;
}
if(Stack.top==-1)
{
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}

2个回答

public 改为 private就OK啊,但是private属性和方法不能在类外访问

所有私有成员使用访问限制符private,以class定义类,不声明的情况下,默认成员为private!如果用struct(与C中的不完全相同),数据成员默认是public的.。建议将类中的数据成员,我一般叫属性(Java这么叫)定义为private,若需继承则用protected.。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问