在 C++ 中使用静态 sockaddr_in 结构
use of static sockaddr_in struct in c++
我想实现一个基础 class,它将作为接口为派生的 classes 发送 UDP 消息。因此,我想将 "sockaddr_in" 声明为静态的,以便在派生的 classes 中只有一个副本可用。
如果我将 "sockaddr_in" 声明为静态的,那么我该如何初始化这个结构?
与初始化任何其他变量的方式相同。您只需对其进行限定,以便编译器可以找到它:
class MyClass
{
public:
static sockaddr_in address;
};
sockaddr_in MyClass::address = {0};
void doSomething()
{
MyClass::address.sin_family = AF_INET;
MyClass::address.sin_addr.s_addr = ...
MyClass::address.sin_port = ...
...
}
我想实现一个基础 class,它将作为接口为派生的 classes 发送 UDP 消息。因此,我想将 "sockaddr_in" 声明为静态的,以便在派生的 classes 中只有一个副本可用。
如果我将 "sockaddr_in" 声明为静态的,那么我该如何初始化这个结构?
与初始化任何其他变量的方式相同。您只需对其进行限定,以便编译器可以找到它:
class MyClass
{
public:
static sockaddr_in address;
};
sockaddr_in MyClass::address = {0};
void doSomething()
{
MyClass::address.sin_family = AF_INET;
MyClass::address.sin_addr.s_addr = ...
MyClass::address.sin_port = ...
...
}