저는 C++에서의 경험이 있지만 최근에는 직장에서 독점적으로 파이썬을 사용하고 있었고 저는 매우 녹슬 었습니다. 각 파일은 아래에 나열되어,C++ 스택 구현 HW 오류
a.out : main.o stack.o
gcc -o a.out main.o stack.o
main.o : main.cpp stack.h
gcc -O -c main.cpp
stack.o : stack.h
gcc -O -c stack.h
clean :
rm main.o stack.o
그래서
MAIN.CPP
#include "stack.h"
int main(int argc, char** argv){
return 0;
}
stack.h
#ifndef STACK_H
#define STACK_H
#define NULL 0
template <class elementType>
class stack{
struct node
{
elementType data;
node* next;
};
node* top;
public:
stack(){
top = NULL;
}
~stack(){
node temp = top;
while (top != NULL){
top = top->next;
delete temp;
}
}
void push(elementType x){
node temp = new node();
temp.data = x;
temp.next = top;
top = temp;
}
elementType pop(){
node temp = top;
top = top->next;
return temp;
}
bool isEmpty(){
return top == NULL;
}
};
#endif //STACK_H
메이크 때 프로젝트 디렉토리 및 유형의 I cd
make
도착 :
gcc -O -c main.cpp
gcc -O -c stack.h
stack.h:7:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
make: *** [stack.o] Error 1
저는 해결책을 찾고 있었지만 코드가 정확하다고 말할 수 있습니다. 나는 실제 스택 구현에 대한 도움을 찾고 싶지 않다. 그리고이 코드가 빈 메인에서 실제로 아무 것도하지 않을 것이라는 것을 알지만,이 컴파일 오류를 고칠 수 없다.
g ++를 gcc가 아니라 C++로 컴파일하십시오. –
@MarkLoeser는 답이되어야합니다. (올바른 것이기 때문에) :) –