好吧,我主要有:
void somefunction();
int main()
{
//bla bla bla
SomeClass myclass = SomeClass();
void(*pointerfunc)() = somefunction;
myclass.addThingy(pointerfunc);
//then later i do
myclass.actionWithDiffrentOutcomes();
}
void somefunction()
{
//some code
}
在课堂上:
class SomeClass()
{
public:
void addThingy(void (*function)());
void actionWithDiffrentOutcomes();
private:
std::vector<void (**)()> vectoroffunctions;
}
SomeClass::addThingy(void (*function)())
{
vectoroffunctions.push_back(&function);
}
SomeClass::actionWithDiffrentOutcomes()
{
(*vectoroffunctions[0])();;
}
我对指针有点新意,但我阅读了我的 c++ 书籍,谷歌搜索,分机。这似乎是正确的,可以编译,运行,但是当我调用“actionWithDiffrentOutcomes()”时,我遇到了访问冲突。我不知道该怎么办。这似乎是正确的,但显然有些地方是错误的。那么,当定义在另一个类中时,如何从一个类中调用一个函数呢?
我这样做是因为我无法将每个选项硬编码到 switch 语句中。