我正在开发一个自定义引擎,我有两个不同的转换类,一个用于2D,一个用于3D.我正在使用#define来选择要使用的转换类,并在逻辑应该相同的位置使用该定义而不是类名.我现在处于一个部分,我希望他们有不同的逻辑,并希望做一个比较分支.我需要做些什么才能让它发挥作用?
class Transform2D;
class Transform3D;
#define TransformClass Transform2D
if(TransformClass == Transform2D)
{
//like this
}
else
{
//like that
}
Run Code Online (Sandbox Code Playgroud)
类型ID适用于此.你怎么处理?
if ( typeid(TransformClass) == typeid(Transform2D) )
{
ittransform->SetRotation(0);
ittransform->SetScale(Vector2D(defaultScale, defaultScale));
}
else
{
ittransform->SetRotation(Vector3f());
ittransform->SetScale(Vector3f(defaultScale, defaultScale, defaultScale));
}
Run Code Online (Sandbox Code Playgroud)