Это полностью зависит от компилятора. Ничего не гарантируется, даже если используется директива inline
. Лучший способ узнать это - посмотреть прямо в сгенерированном коде.
Кроме того, вы можете найти оптимизатор более чем умным. Например:
class Base
{
void funcA() {};
void funcB() {};
.
.
};
class Derv : public Base
{
int m_state;
void funcA(){ m_state = 1; Base::funcA(); }
void funcB(){ m_state = 4; Base::funcB(); }
.
.
};
int main()
{
Derv a;
a.funcA();
return 0;
}
полностью пропустит код и просто вернет 0.