2013-03-30 41 views
13

Dưới đây là C của tôi ++ mãlỗi C2061: lỗi cú pháp: định danh

// XuatChuoiBTHang.h 
#pragma once 
#include "BieuThuc.h" 
#include "BieuThucHang.h" 

class XuatChuoiBTHang 
{ 
    public: 
     virtual string xuatChuoi(BieuThucHang* btHang) = 0;  
}; 

// BieuThucHang.h 
#pragma once 
#include "bieuthuc.h" 
#include "XuatChuoiBTHang.h" 

class BieuThucHang : public BieuThuc 
{ 
    private: 
     XuatChuoiBTHang* xuatChuoiBTHang; 
}; 

Ouput là:

"lỗi C2061: lỗi cú pháp: định danh 'BieuThucHang"

Làm thế nào để sửa chữa nó?

Trả lời

33

Bạn có phụ thuộc vòng tròn của tệp tiêu đề. Bạn cần phải phá vỡ sự phụ thuộc bao gồm hình tròn này bằng cách sử dụng một khai về phía trước trong XuatChuoiBTHang.h:

class BieuThucHang; 

Ngoài ra, loại bỏ #include "BieuThucHang.h" từ XuatChuoiBTHang.h.

+2

Cho anh ấy biết về sự phụ thuộc vòng tròn trước khi người khác đăng câu trả lời khác. –

+0

Nói với anh ta anh ta cũng sẽ sử dụng tiêu đề quardian :) – duDE

+0

vâng, bạn có thể gợi ý cho tôi điều gì đó về sự phụ thuộc vòng tròn không? Cảm ơn bạn rất nhiều! – DungLe