我有一个名为" SensorData"的基类,其中存在不同的实现。基类做得更多,但为了简单起见,我们只想让实现返回一个常量的,特定于实现的值" maxRange"。实现这一点的显而易见的方法是:
基类:
class SensorData {
virtual float getMaxRange() = 0;
virtual ~SensorData();
};
示例实现如下所示:
class Velo64 : public SensorData {
inline float getMaxRange() { return 120.0f;}
};
class Velo16 : public SensorData {
inline float getMaxRange() { return 90.0f;}
};
此外,我有一个工厂,它返回一个指向实现的指针。
我的问题是:内联工作在这里吗? AFAIK,内联意味着编译器用实际函数替换所有函数调用。由于实际函数未在编译时定义(而是在运行时确定,具体取决于使用的实现?),该函数是否可以内联?
我问这个是因为函数(以及其他类似函数)在性能关键型应用程序中每秒会被调用数百万次。或者,还有更好的方法吗?例如,使用变量而不是get函数?