Пример прокси объекта с википедии
class MathProxy : public IMath
{
public:
    MathProxy()
    {
        math = new Math();
    }
    virtual ~MathProxy()
    {
        delete math;
    }
    virtual double add(double x, double y) 
    {
        return math->add(x, y);
    }
    
    virtual double sub(double x, double y) 
    {
        return math->sub(x, y);
    }
    
    virtual double mul(double x, double y) 
    {
        return math->mul(x, y);
    }
    
    virtual double div(double x, double y) 
    {
        return math->div(x, y);
    }
    
private:
    IMath *math;
};
Есть возможность не делать реализации add, mul, div, sub функций, а сразу их перенаправлять в Math class?
для этих целей подошла бы перегрузка operator->, но требуется перед каждым вызовом функции вставить код. Код один и тот же для всех функций.

