01/10/2018, 16:52
Lỗi undefined reference
Mình tạo 1 lớp Link:
template <typename E>
class Link
{
private:
static Link<E>* freeList;
public:
E element;
Link<E>* next;
Link(const E& elemVal, Link<E>* nextVal) { element = elemVal; next = nextVal; }
Link(Link<E>* nextVal) { next = nextVal; }
Link() {}
void* operator new(size_t)
{
if (freeList==NULL) return ::new Link;
Link<E>* temp=freeList;
freeList=freeList->next;
return temp;
}
void operator delete(void* ptr)
{
((Link<E>*)ptr)->next=freeList;
freeList=(Link<E>*)ptr;
}
};
Nó báo lỗi undefined reference to freeList. Mình không hiểu tại sao lại như vậy ạ?
Bài liên quan
biến static trong class trước khi xài phải được khởi tạo, nếu ko nó sẽ báo lỗi. Ở đây
freeList
là biến static trong class Linkthêm code này vào phía sau khai báo của class Link