类中的结构体或枚举等类型的前置声明
对象类别如结构体,枚举等各种, 如果是定义在类中, 或namespace中, 前置声明时使用方法
//原类型定义
namespace NMath
{
typedef enum _DEV_MODE
{
DM_None,
...
}DEV_MODE;
}
//前置声明
namespace NMath {enum _DEV_MODE;};
//使用声明
NMath::_DEV_MODE m_nDevMode;
//实际使用
m_nDevMode = NMath::xxxx;
类中的结构体无法前置申明, 但是可以再用一个类来继承, 这样变成类的前置声明
源h:
class X
{
public:
struct S1
{
int a;
};
};
//添加一行
class XS: public X::S1{};
使用时前置声明:
int test1(class XS &s);
实际使用
int test1(class XS &s)
{
return s.a;
}

浙公网安备 33010602011771号