g ++로 컴파일하려고하면 링크 된 목록에 대한 코드를 작성하고 있는데이 이상한 오류가 발생했습니다.정의되지 않은 참조 동일한 파일에 이미있는 변수에 대한 링커 오류
/cygdrive/c/Users/Blas/AppData/Local/Temp/ccEcixjp.o: In function `Node':
/cygdrive/c/Users/Blas/Documents/blas.borde/trunk/Cs170/Lab6/List.h:50: undefined
reference to 'CS170::ListLab::Node::nodes_alive'
/cygdrive/c/Users/Blas/Documents/blas.borde/trunk/Cs170/Lab6/List.h:50: undefined
reference to 'CS170::ListLab::Node::nodes_alive'
/cygdrive/c/Users/Blas/Documents/blas.borde/trunk/Cs170/Lab6/List.h:56: undefined
reference to 'CS170::ListLab::~Node::nodes_alive'
는 그리고이 이상한 것은 내가 이미 링커가 변수가 정의되지 않은 것을 말한다 왜 그렇게 나도 몰라 nodes_alive 정의하고 있다는 것입니다 내 코드
namespace CS170
{
namespace ListLab
{
struct Node
{
int number; // data portion
Node *next; // pointer to next node in list
static int nodes_alive; // number of nodes still around
// Non-default constructor
Node(int value)
{
number = value;
next = 0;
nodes_alive++; // a node was created
}
// Destructor
~Node()
{
nodes_alive--; // a node was destroyed
}
};
}
}
입니다. 어쩌면 제가 실종되었다는 것이 명백 할 수도 있습니다. 제발, 도와주세요.
여기서'nodes_alive'를 정의합니까? 이것은 정적 멤버 변수이므로 struct 내부에 * 선언하지만 * 외부에 정의해야합니다. – Beta