c++ - 在 C++ 中使用静态 sockaddr_in 结构

标签 c++ sockets static

我想实现一个基类,作为接口(interface)为派生类发送 UDP 消息。因此,我想将“sockaddr_in”声明为静态的,以便派生类之间只有一个拷贝可用。

如果我将“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 = ...
    ...
}

关于c++ - 在 C++ 中使用静态 sockaddr_in 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28310716/

相关文章:

c++ - 理解 8 皇后拼图的对角搜索

perl - Perl 非面向对象的渗透测试

docker - 使用卷时无法在主机上使用 mysql 套接字

php - 不应静态调用非静态方法 utf_normalizer::nfc()

java - 为什么编译器不给出 super.staticMethod() 警告

c++ - 错误 : Could not resolve SDK path for 'macosx10.8'

c++ - 请解释以下返回数组大小的函数

C++ SDL2 程序在切换循环时崩溃

java - InputStream接收方法阻塞

c++ - 在没有反射/内省(introspection)的情况下确定 C++ 中的类类型