Кратко про разность:

  1. Инфиксная запись: операнды окружены оператором (т.е. a + b).
  2. Функциональная запись: оператор применяется как функция (т.е. add(a, b)).

Info

У нас есть возможность определить инфиксную запись для своих типов данных!

Пример с перегрузкой операторов

#include <iostream>
 
class Complex {
private:
    double real, imag;
 
public:
    Complex(double r = 0, double i = 0) : real(r), imag(i) {}
 
    // Перегрузка оператора +
    Complex operator+(const Complex &c) const {
        return Complex(real + c.real, imag + c.imag);
    }
 
    // Функциональная запись
    static Complex add(const Complex &c1, const Complex &c2) {
        return c1 + c2;
    }
 
    void display() const {
        std::cout << "(" << real << ", " << imag << ")" << std::endl;
    }
};
 
int main() {
    Complex c1(1, 2), c2(3, 4);
 
    // Инфиксная запись
    Complex sum = c1 + c2;
    sum.display();
 
    // Функциональная запись
    Complex sumFunc = Complex::add(c1, c2);
    sumFunc.display();
 
    return 0;
}