2013-03-30 149 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; 
}; 

输出继电器是:

“错误C2061:语法错误:标识符 'BieuThucHang'”

如何解决它?

回答

33

你有一个循环依赖的头文件。您需要通过 使用预先声明打破XuatChuoiBTHang.h这个夹杂依赖性:

class BieuThucHang; 

此外,从XuatChuoiBTHang.h删除#include "BieuThucHang.h"

+2

在别人发布其他答案之前告诉他关于循环依赖的信息。 –

+0

告诉他他应该使用标题quardian以及:) – duDE

+0

是的,你能告诉我一些关于循环依赖的东西吗? 非常感谢你! – DungLe

相关问题