类中的结构体或枚举等类型的前置声明

对象类别如结构体,枚举等各种, 如果是定义在类中, 或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;
}

posted @ 2024-10-11 11:12  Yofoo  阅读(75)  评论(0)    收藏  举报