W>С си++ только познакомился, поясните пожалуйста некоторые моменты
W>Что означает вот эта строка?
W>W>Next(Next (*p)()) : fun(p){}
W>
Это конструктор. Он принимает указатель на функцию (выделен жирным) и инициализирует им член-указатель на функцию.
Я его определил, чтобы было удобнее возвращать объект типа Next из функции и инициализировать его сразу в одном выражении
return Next(fun2);
W>Как работает эта строка? (ясно, что возвращается указатель, но каким образом)
W>W>return Next(fun2);
W>
А возвращается из функции не указатель непосредственно, а объект имеющий тип Next (в скобочках его конструктору как раз передается указатель на функцию fun2).
W>В этом участке std зачем? Что это означает?
W>W>std::cout
W>
Это тебе надо про пространства имен почитать.