Мне нужно вести список методов, которые будут выполняться в разном порядке для тестирования. Мы переходим с C на C++, чтобы использовать фреймворк Google. Можно ли поддерживать список указателей функций на некоторые методы класса, которые будут использоваться для выполнения внутри класса, чтобы их можно было использовать после создания экземпляра? см. http://cpp.sh/265y
#include <iostream>
#include <string>
#include <vector>
using namespace std;
typedef void (*funcType)();
class Sample {
public:
vector<funcType> func_list;
Sample();
void formList();
void method1();
void method2();
void method3();
};
void Sample::formList() {
func_list.push_back(&method1);
func_list.push_back(&method2);
func_list.push_back(&method3);
}
void Sample::method1 () {
cout << "method1" << endl;
}
void Sample::method2 () {
cout << "method2" << endl;
}
void Sample::method3 () {
cout << "method3" << endl;
}
int main()
{
Sample sample; //* = new Sample();
sample.formList();
vector<funcType>::iterator it;
for (it = sample.func_list.begin(); it != sample.func_list.end(); ++it) {
((*it));
}
}
Ответ: http://cpp.sh/8rr2