Анонимные классы в стиле Java (именно это вы и делаете в своем примере) могут быть похожи на лямбда-функции, но их стоит рассмотреть только в том случае, если вы используете новейший стандарт C ++ (Google C ++ 11).
Если вы не используете C ++ 11, вы можете вместо этого передать указатель на функцию, которая не определена в классе или является статическим методом. Никогда не передавайте указатель на нестатический метод, поскольку это может вызвать серьезные головные боли, если вы не будете осторожны.
Но, вообще говоря, вы тоже не хотите этого делать. Как уже говорили другие, просто создайте класс и передайте на него указатель. По сути, это то, что вы делаете в своем примере с Java, за исключением того, что вы делаете это встроенным.
Приятной особенностью C ++ является то, что вы можете определить более одного класса в исходном файле и не указывать его в заголовочном файле, если не хотите, чтобы он был частью общедоступного интерфейса.