我想獲得一個指向我的對象的實例的函數的指針。這裏是我的代碼:如何將指針傳遞給C++中的類實例函數?
#include <iostream>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
class Dice {
int face;
public:
Dice() {
face = rand() % 6 + 1;
}
int roll() {
face = rand() % 6 + 1;
return face;
}
};
int main()
{
Dice mydice;
vector<int> v(1000);
generate(v.begin(),v.end(),mydice.roll);
}
我的編譯器在我吠叫與神祕郵件=的產生線)請指出如何正確地告訴生成調用mydice.roll()
填充矢量v
。
'std :: bind(&Dice :: roll,&mydice);' - 或者只是'[&] {return mydice.roll(); }'。 – Xeo
[C++函數指針(類成員)可能重複到非靜態成員函數](http://stackoverflow.com/questions/990625/c-function-pointer-class-member-to-non-static-member-函數) –
@Xeo請使用答案,而不是評論=) – Dima