void(SIMSSERVER::*)(const sockaddr_in&) 这种类型是函数指针类型吗?
时间: 2024-02-15 19:02:22 浏览: 79
sendto函数-6 socket编程基础
这种类型 `void(SIMSSERVER::*)(const sockaddr_in&)` 并不是函数指针类型,而是一个指向类 `SIMSSERVER` 的成员函数的指针类型。这种类型表示一个指向类 `SIMSSERVER` 中接受一个 `const sockaddr_in&` 类型参数并返回 `void` 的成员函数的指针。
使用这种类型的指针,可以调用 `SIMSSERVER` 类中的相应成员函数,并传递 `const sockaddr_in&` 类型的参数。例如,可以使用以下代码定义一个指向 `SIMSSERVER` 类成员函数的指针类型:
```
typedef void (SIMSSERVER::*FuncPtr)(const sockaddr_in&);
```
然后,可以使用以下代码来调用 `SIMSSERVER` 类中的成员函数:
```
SIMSSERVER server;
FuncPtr ptr = &SIMSSERVER::memberFunction;
(sock.*ptr)(address);
```
在这个例子中,我们创建了一个 `SIMSSERVER` 类对象 `server`,并定义了一个指向 `SIMSSERVER` 类成员函数的指针 `ptr`。然后,我们调用成员函数 `memberFunction` 并传递一个 `const sockaddr_in&` 类型参数 `address`。需要注意的是,在调用成员函数时,我们使用了类对象 `server` 来调用函数,因为成员函数需要访问类的成员变量和其他成员函数。
阅读全文