QT 中,给新建对象传递带参数的函数指针?函数怎么定义?
时间: 2024-05-07 09:19:33 浏览: 156
在 QT 中给新建对象传递带参数的函数指针,需要先定义一个函数指针类型,然后在对象构造时将函数指针作为参数传入。
下面是一个简单的例子:
首先定义一个函数指针类型:
```cpp
typedef void (*FuncPtr)(int);
```
然后定义一个类,该类的构造函数接受一个函数指针参数:
```cpp
class MyClass {
public:
MyClass(FuncPtr func) : m_func(func) {}
void callFunc(int arg) {
if (m_func) {
m_func(arg);
}
}
private:
FuncPtr m_func;
};
```
在使用该类时,可以将一个带参数的函数指针传入:
```cpp
void myFunc(int arg) {
qDebug() << "myFunc called with argument" << arg;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
FuncPtr func = &myFunc;
MyClass obj(func);
obj.callFunc(123);
return a.exec();
}
```
运行结果为:
```
myFunc called with argument 123
```
这样就可以在 QT 中给新建对象传递带参数的函数指针了。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)