#ifndef MYTCPSERVER_H #define MYTCPSERVER_H #include <QTcpServer> #include "clientsocket.h" #include <QObject> class myTcpServer : public QTcpServer { Q_OBJECT public: myTcpServer& getInstance(); protected: void incomingConnection(qintptr handle); private: QList<ClientSocket*> socketList; int socketCount = 0; explicit myTcpServer(QObject *parent = nullptr); signals: void showMsg(QString,int); }; #endif // MYTCPSERVER_H 我这个类里的getInstance函数怎么创建函数指针
时间: 2024-04-12 11:32:29 浏览: 122
C++ 中pragma once 与 #ifndef _XXX_H_ #define _XXX_H_的区别
5星 · 资源好评率100%
要创建一个函数指针,你需要定义一个函数类型,然后声明一个指向该函数类型的指针变量。在这种情况下,你可以按照以下步骤来创建一个指向getInstance函数的函数指针:
1. 首先,定义一个函数类型,该类型与getInstance函数的签名相匹配。在这种情况下,getInstance是一个成员函数,并且返回类型为myTcpServer&,没有参数。因此,函数类型可以定义为:
```
using getInstanceFunc = myTcpServer& (*)();
```
2. 接下来,声明一个指向该函数类型的指针变量。你可以将其声明为静态成员变量,以便在整个类中共享该指针。在myTcpServer类中添加以下代码:
```
class myTcpServer : public QTcpServer
{
// ...
public:
static getInstanceFunc getInstancePtr;
// ...
};
```
3. 在类外部,定义getInstancePtr变量并将其初始化为getInstance函数的地址。在myTcpServer.cpp文件中添加以下代码:
```
myTcpServer::getInstanceFunc myTcpServer::getInstancePtr = &myTcpServer::getInstance;
```
这样,你就创建了一个指向getInstance函数的函数指针getInstancePtr。通过使用getInstancePtr,你可以在需要的地方调用getInstance函数。请记住,在使用函数指针之前,确保已经调用了getInstance函数以创建myTcpServer类的实例。
阅读全文