#pragma once
#include"Student.h"
class Link
{
static Link* freelist ; //Head of the freelist
public:
Student elem ;
Link* next ;
Link* prev;
Link(void);
Link(const Student& e ,Link* prevp=NULL , Link* nextp=NULL)
{
elem=e;
prev=prevp;
next=nextp;
}
void* operator new(size_t);
void operator delete(void* ptr);
};
初看這段代碼也沒有什麼奇特。不過就會産生如題的Error。而且是比較煩人的Linking問題。一般都挺煩人的。
這次發了一點時間來确定問題的所在,其實原來發生在Link的構造函數裡面
Link(void); 這種寫法估計是在文法分析的時候還沒有檢測出問題,不過連結的時候可能由于沒有花括号導緻編譯器連結出錯。
正确的寫法是:
Link(void)
{
}
以上是我解決這個問題的過程。如果有錯誤歡迎指正。
細節決定成敗。