Как при загрузке элемента своего класса в функцию задать ему значение по умолчанию вызвав конструктор по умолчанию?

тоесть вот пример кода: как в методе poiskel дать параметру s значение по умолчанию вызвав для него конструктор по умолчанию? если написать s = 0 то он вызовет конструктор с параметром х

template <typename I>
struct Banka
{
    I x;
    Odpisok<I> next;
    Banka()
    {
        x = 0;
        next = 0;
    }
    Banka(I a,const Odpisok<I>& b)
    {
        x = a;
        next = b;
    }
    ~Banka()
    {
    }
    friend Odpisok<I>;
};

template <typename I>
struct Odpisok
{
Odpisok()
    {}
    Odpisok(I x)
    {
        Odpisok<I> b;
        a = new Banka<I>(x, b);
    }
    Odpisok(const Odpisok& b)
    {
        a = b.a;
    }
//код
const Odpisok& poiskel(const Odpisok& s) const
    {
        if (a->next != s)
            return (a->next).poiskel(s);
        else
            return *this;
    }
//код
};

Ответы (1 шт):

Автор решения: EOF

Чтобы указать значение по умолчанию для аргумента функции, которое должно быть обьектом, созданным с помощью конструктора по умолчанию, то нужно явно вызвать этот конструктор для создания такого обьекта:

const Odpisok& poiskel(const Odpisok& s = Odpisok()) const
→ Ссылка