我知道以下代码不会编译,但是无论如何我都将其发布了,因为它例证了我要完成的工作。
typedef struct {
void actionMethod();
}Object;
Object myObject;
void myObject.actionMethod() {
// do something;
}
Object anotherObject;
void anotherObject.actionMethod() {
// do something else;
}
main() {
myObject.actionMethod();
anotherObject.actionMethod();
}
基本上我想要的是某种代表。有一些简单的方法可以做到这一点吗?
我不能包含
<functional>
标头,也不能使用std::function
。我怎样才能做到这一点? 最佳答案
例如:
#include <iostream>
using namespace std;
struct AnObject {
void (*actionMethod)();
};
void anActionMethod() {
cout << "This is one implementation" << endl;
}
void anotherActionMethod() {
cout << "This is another implementation" << endl;
}
int main() {
AnObject myObject, anotherObject;
myObject.actionMethod = &anActionMethod;
anotherObject.actionMethod = &anotherActionMethod;
myObject.actionMethod();
anotherObject.actionMethod();
return 0;
}
输出:
This is one implementation
This is another implementation
关于c++ - 稍后在c++中实现通用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16638633/