#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
class A{
public:
A():n(4),d(6.6),f(2.7),s("hello my dear"){}
~A(){}
void printAll()
{
std::cout << this->n << "\n" << this->d << "\n" << this->f << "\n" << this->s << "\n\n";
}
private:
int n;
double d;
float f;
std::string s;
};
int main(){
std::vector<A*> v(100);
//filling v ...
std::for_each(v.begin(), v.end(), mem_fun_ref(&A*::printAll)); // this isn't supposed to work ?
return(0);
}
我尝试了很多解决方案,这只是最后一个,这些都不起作用,我的目标是为 C++ 11 之前的 C++ 版本提供解决方案,所以我想避免使用 lambda(我也没有与 lambda 一起工作的问题,我的问题仅在于 for_each 循环)。
为了清晰和代码可读性,我想避免奇怪的绑定解决方案,这个解决方案也倾向于向程序添加 1 个库。
那么,当引用指向自定义类型的指针时,我如何才能简单地访问 for_each 循环中的方法?
谢谢。