内联虚拟功能真的是胡扯吗?
当我收到一条代码审查评论时说了虚函数不必是内联的,这是我遇到的问题。 我认为内联虚拟函数可以在直接在对象上调用函数的情况下派上用场。但是我想到的反驳是-为什么要定义虚拟然后使用对象来调用方法? 最好不要使用内联虚拟函数,因为它们几乎从未扩展过? 我用于分析的代码段: class Temp { public: virtual ~Temp() { } virtual void myVirtualFunction() const { cout<<"Temp::myVirtualFunction"<<endl; } }; class TempDerived : public Temp { public: void myVirtualFunction() const { cout<<"TempDerived::myVirtualFunction"<<endl; } }; int main(void) { TempDerived aDerivedObj; //Compiler thinks it's safe to expand the virtual functions aDerivedObj.myVirtualFunction(); //type …