c – 本机类型的封装是否会影响效率?

我想在两个结构中封装一个浮点数,例如:

struct AngleDeg {
    explicit AngleDeg(float angle):value(angle) {}
    float value;
};

struct AngleRad {
    explicit AngleRad(float angle):value(angle) {}
    float value;
};

然后在类中使用这些结构重载一个函数,例如:

...
void DoStuff(AngleRad angle);
inline void DoStuff(AngleDeg angle) { DoStuff(Deg2Rad(angle.value)); }
...

这是否与使用以下两个函数一样有效?

void DoStuffRad(float angle);
inline void DoStuffDeg(float angle) { DoStuffRad(Deg2Rad(angle)); }

解决方法:

它可能不会影响程序的运行速度,但可以增加使程序正确的几率.这很有效率!

上一篇:设计模式之:桥接模式


下一篇:c – 无法将超类强制转换为子类