Встроенные функции
В C ++ макрос - это не что иное, как встроенная функция.Так что теперь макросы находятся под контролем компилятора.
- Важно : если мы определим функцию внутри класса, она станет Inline автоматически
Функция Code of Inline заменяется в том месте, где она вызывается, поэтому она снижает накладные расходы на вызывающую функцию.
В некоторых случаях вставка функции может не работать, например
Если внутри встроенной функции используется статическая переменная.
Если функция сложная.
Если рекурсивный вызов функции
Если адрес функции взят неявно или явно
Функция, определенная вне класса, как показано ниже, может стать встроенной
inline int AddTwoVar(int x,int y); //This may not become inline
inline int AddTwoVar(int x,int y) { return x + y; } // This becomes inline
Функция, определенная внутрикласс также становится встроенным
// Inline SpeedMeter functions
class SpeedMeter
{
int speed;
public:
int getSpeed() const { return speed; }
void setSpeed(int varSpeed) { speed = varSpeed; }
};
int main()
{
SpeedMeter objSM;
objSM.setSpeed(80);
int speedValue = A.getSpeed();
}
Здесь функции getSpeed и setSpeed станут встроенными