다음 프로그램에 문제가 있습니다. 링크 된 목록을 사용하여 스택을 구현합니다. 코드가 좋기 때문에 여기에 모든 코드가 표시되지 않습니다. 그러나 문제는 다음과 같습니다. 내가 프로그램을 실행하는 IDE를 사용하고 서로 다른 파일을 링크로.C++ 링커 오류
나는 TestIntStacks.cpp
을 실행하면., 주요 방법은 StackFunctions.cpp
에서 test()
를 호출 할 예정이다. (StackFunctions.cpp
에 정의) 테스트 기능의 TestStack
사용 현재 "링커 오류, push/pop not defined"오류가 발생합니다. 내가 뭘 잘못하고있는 것입니까? 네임 스페이스와 관련이 있습니다.
MyStack.h
-------------------------------------
namespace A
{
class Node{
public :
char data;
StackNode* link;
StackNode(int v=0): data(v), link(NULL){ }
};
class MyStack{
private:
Node * top;
public:
MyStack():top(NULL){ }
void push(int c);
};
}//namespace
//TestStack.cpp
--------------------------------------------------------------
#include "MyStack.h"
namespace A
{
void MyStack::push(int x)
{
StackNode *temp = new StackNode(x);
temp->link = top;
top = temp;
}
}
//StackFunctions.cpp
-----------------------------------------------------------
#include <iostream>
#include "TestStack.h"
using namespace std;
using namespace A;
void test()
{
MyStack st;
st.push(1);
st.push(2);
st.push(3);
st.push(4);
}
// TestIntStacks.cpp
----------------------------------------------------------------
// Code for testing the TestStack
// from the A namespace.
#include <iostream>
#include <vector>
using namespace std;
#include "TestStack"
#include "StackFunctions.cpp"
void test();
int main()
{
test();
system("pause");
return 0;
}
네임 스페이스가 맞는지 확실하지 않습니다. 프로그램을 작성하는 방법과 StackFunction.cpp에서이 클래스를 사용하는 방법을 보여주는 것은 사람들을 도울 수 있습니다. – MHC
오류가 발생했습니다. 코드가 정상이라고 가정합니다. 그렇지 않습니다. 코드를 잘못 입력했는지 알려줄 수 있도록 코드를 입력하십시오. – wheaties
링커 명령이란 무엇입니까? 링커가 실행하는 것을 보냅니다. –