2013-03-30 2 views
13

Вот мой C++ кодошибка C2061: синтаксическая ошибка: идентификатор

// 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 является:

"ошибка C2061: синтаксическая ошибка: идентификатор" BieuThucHang"

Как это исправить?

ответ

33

У вас есть круговая зависимость файлов заголовков. Вы должны разорвать эту циклическую зависимость включения путем с использованием прямого заявления в XuatChuoiBTHang.h:

class BieuThucHang; 

Кроме того, удалить #include "BieuThucHang.h" из XuatChuoiBTHang.h.

+2

Сообщите ему о круговой зависимости до того, как кто-то еще отправит другой ответ. –

+0

Скажите ему, что он также будет использовать заголовочный кварган :) – duDE

+0

Да, можете ли вы предложить мне что-нибудь о круговой зависимости? Спасибо, очень! – DungLe

Смежные вопросы