30/09/2018, 16:11
Lỗi khai báo không hiểu class khi đã include header của class đó
Mình xây dựng danh sách liên kết đôi khi khai báo con trỏ first bị lỗi loay hoay mãi không khắc phục được
code của mình đây ai giúp với
#pragma once
#include "SinhVien.h"
#include "Node.h"
class LinkedList
{
private:
Node *first;
public:
int length;
LinkedList();/*
void pushFirst(SinhVien);
void pushLast(SinhVien);*/
~LinkedList();
};
còn đây là Node
#pragma once
#include "SinhVien.h"
#include "LinkedList.h"
class Node
{
private:
friend class LinkedList;
SinhVien value;
Node *next;
Node *prev;
public:
Node(SinhVien);
Node();
~Node();
};
build gặp lỗi này
Bài liên quan
Cái này là do lỗi include chồng chéo.
Mình cần cho thằng LinkedList biết là nó có một cái class Node ở đâu đó bằng cách làm như sau.
Thử xem còn lỗi không?
Được rồi anh em loay hay 3h đồng hồ rồi ạ. Vậy là do nó không biết tìm Node ở đâu ạ?
Nếu mình viết chung một file thì có bị lỗi này không anh?
Em có thể hiểu trường hợp này như sau:
File A include file B
File B include file A
Khi file A muốn gọi một class bên file B, nhưng file B lại cần 1 cái gì đó của file A. Dẫn đến 2 thằng chờ nhau.
Để tránh trường hợp đó, thì mình thông báo cho nó là mày đừng chờ, cứ làm đi
Dòng này anh báo cho
class LinkedList
biết là có cáiclass Node
tồn tại, mày xài đi, còn sau này mày sẽ biết nó cấu trúc như thế nào.Không bị lỗi này
Đã ngộ ra chân lý. cảm ơn anh nhiều