Не напрямую, потому что у функции-члена есть «скрытый» параметр, который является объектом, к которому «вызывается» метод.
Поэтому, когда вы пишете:
Multipler m;
m.apply(1.0);
что действительно происходит, так это то, что Multiplier::apply
вызывается с двумя параметрами: объект m
(к которому вы можете обратиться, используя ключевое слово this
), и двойной x
.
transform
хочет что-то, что можно вызвать с одним параметром, а Multiplier::apply
- это не так.
mem_fun
и т. Д. c позволяют вам создать функциональный объект, который можно вызывать с одним параметром, указав объект ранее.