性能:继承和内联?

时间:2015-10-27 15:22:16

标签: c++ inheritance inline

我有一个名为" 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函数?

0 个答案:

没有答案