2013-03-30 18 views
13

Qui è il mio codice C++errore C2061: errore di sintassi: identificatore

// 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'errore C2061: errore di sintassi: identificatore 'BieuThucHang'"

Come ripararlo?

risposta

33

Si dispone di una dipendenza circolare dei file di intestazione. È necessario rompere questa dipendenza inclusione circolare utilizzando una dichiarazione anticipata in XuatChuoiBTHang.h:

class BieuThucHang; 

Inoltre, rimuovere #include "BieuThucHang.h" da XuatChuoiBTHang.h.

+2

Parlagli della dipendenza circolare prima che qualcun altro pubblichi un'altra risposta. –

+0

Digli che deve usare anche l'header quardian :) – duDE

+0

sì, mi può suggerire qualcosa sulla dipendenza circolare? Grazie mille! – DungLe