背景:
在做业务的时候,有时会蹦到一个业务逻辑,如果子类重写父类方法,就调用,如果没重写就不调用它,这个逻辑在大量子类集成同一个父类的,会节约一点点性能,那有没有方法呢。接下来就看下具体方式。
代码
class Base
{
public:
virtual ~Base() {};
virtual void printf() {};
};
class A:public Base
{
public:
virtual ~A() {};
virtual void printf() {};
};
class B :public Base
{
public:
virtual ~B() {};
};
代码很简单,我就是想判断 class A与class B是否重写了printf,然后做一些业务逻辑
接下来就是具体实现方式:
int c = std::is_same<decltype(&Base::printf), decltype(&A::printf)>::value;
int d = std::is_same<decltype(&Base::printf), decltype(&B::printf)>::value;
结果:
目前来看是满足需求的