Hỏi về #include Class

Em có viết 1 class DoorState:

#ifndef LOCKEDSTATE_H_
#define LOCKEDSTATE_H_

#include "DoorState.h"

class Door;

class LockedState : public DoorState {
public:
    LockedState();
    virtual ~LockedState();

    virtual void unlock(Door* door);
};

#endif /* PAUSEDSTATE_H_ */

lúc em gọi lớp này trong file header của lớp khác thì bị lỗi.
Còn khi em khai báo thế này thì không sao

#ifndef DOOR_H_
#define DOOR_H_
class DoorState;

class Door {
public:
    Door();
    virtual ~Door();

    void unlock();
    void lock();
    void close();
    void open();

    void SetState(DoorState* state);

private:
    DoorState* m_pState;
};

Mọi người cho em hỏi vì sao lại vậy ạ?

Bạn chụp hình thế làm sao mn người test được. Với lại vui lòng nói rõ là lỗi gì nữa chứ.

1 Like

Mình include thì 1 đống lỗi


còn mình khai báo Class như trên thì không có lỗi gì

Lỗi cú pháp cả đống kìa.:woman_facepalming::man_facepalming:

2 Likes

chẳng hiểu sao khi #include thì bị vậy còn gọi thẳng tên class thì ko bị sao cả

Mình đã biết lỗi của bạn ở đâu, nhưng cách bạn hỏi không có tâm. Bạn nên copy code, 2 file header thôi là đủ rồi. Mà code của bạn nói thật là chẳng cần dấu code làm gì, copy lên có khi người ta còn chỉ thêm những tip khác về clean code.


Lỗi đó là do
image

2 Likes

Cảm ơn góp ý của anh ạ. Em tưởng chụp ảnh là được. Lần sau em xin rút kinh nghiệm

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?