2013-03-30 26 views
13

İşte benim C++ kodhata C2061: sözdizimi hatası: tanımlayıcı

// 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; 
}; 

Çıkışı geçerli:

"hata C2061: sözdizimi hatası: tanımlayıcı 'BieuThucHang'"

Nasıl düzeltilir?

cevap

33

Başlık dosyalarının dairesel bağımlılığınız var. Sen XuatChuoiBTHang.h bir ileri beyanı kullanılarak bu genelge içerme bağımlılığı kırmak gerekir:

class BieuThucHang; 

Ayrıca XuatChuoiBTHang.h den #include "BieuThucHang.h" çıkarın.

+2

Başka bir yanıt göndermeden önce ona dairesel bağımlılıktan bahsedin. –

+0

Ona söndürücü başlığını da kullanacağını söyle :) – duDE

+0

Evet, bana dairesel bağımlılık hakkında bir şey önerebilir misin? Çok teşekkür ederim! – DungLe

İlgili konular