|
1. Boolean, Bool 이란 자료구조는 c++에 없습니다.
typedef로 정의를 하거나 c++의 기본자료형인 bool로 변경해야 합니다.
2. class 정의 밖에서 class의 멤버 함수를 inline으로 정의할 수 없습니다.(빌더의 경우)
3. TRUE, FALSE의 정의가 없습니다.
bool을 쓸거라면 true, false로 변경해야 하고,
typedef로 쓸거라면 #define이나 enum문을 이용해서 TRUE와 FALSE를 정의해야 합니다.
4. 오타가 있습니다. isEmpty를 isEmepty로 잘못 타이핑했습니다.
inline Bool Stack::isEmepty() {
< 필독!!!! >
C++ 뿐만 아니라 컴퓨터 언어를 공부하시려면,
자신이 사용하고 있는 컴파일러의 에러 메시지가 무슨 의미인지는
반드시 파악하셔야 합니다.
컴퓨터 언어는 사람의 언어만큼 융통성이 있지 않습니다.
정해진 규칙대로 정확히 작성해야 컴파일러가 제대로 번역을 하고,
원하는 결과를 얻을 수 있습니다.
박재성 님이 쓰신 글 :
: #include<iostream.h>
:
: const int DefaultSize=10;
:
: class Stack
: {
: private:
: int top;
: int St[DefaultSize];
: int value;
: public:
: Stack(){ top=-1;}
: Boolean isFull();
: void push(int);
:
: Boolean isEmpty();
: int pop();
: void StackEmpty() {cout<<"empty"<<endl;};
: void stackFull() {cout<<"full"<<endl;};
: void output();
: };
:
: inline Bool Stack::isFull()
: {
: if (top==DefaultSize -1) return TRUE;
: else return FALSE;
:
: }
:
: inline Bool Stack::isEmepty() {
: if(top== -1) return TRUE;
: else return FALSE ;
:
: void Stack::push(int x)
: {
: if(isFull()) StackFull();
: else st[++top] = x;
: }
: int Stack::pop()
: {
: inf(isEmpty()) {StackEmpty(); return 0 ;}
: value = st[top--];
: return value;
: }
:
: void Stack::output() {
: cout<<"top = "<<top<<endl;
: for (int i=0;i<=top;i++)
: cout< |