我正在尝试创建一个结构体,其中包含两个函数,如果需要的话可以重写。这两个函数分别是:onClicked() 和 onClickedRight()。以下是该结构体的代码:
typedef struct {
QString text;
QString infoText;
QUrl iconSrc;
QColor iconColor;
void (*onClicked)() = nullptr;
void (*(*onClickedRight))() = &onClicked; // by default, execute the same function from onClicked()
} ConfigButton;
我尝试执行这些函数的方式:
ConfigButton b;
...
// test if click funtion has been defined, to execute it
if (b.onClicked)
b.onClicked(); // this one work just fine
...
if (*(b.onClickedRight))
(*(b.onClickedRight))(); // this one crashed
这有可能吗?是我漏掉了什么吗?
b
中的值是从其他地方复制过来的吗?如果是的话,onClickedRight
可以指向该源结构。 - 1201ProgramAlarmvoid (*onClicked)() = nullptr;
的语法错误。 - 0___________