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

时间:2015-02-03 23:25:05

标签: c++ sockets static

我想实现一个基类,它将充当为派生类发送UDP消息的接口。所以,我想将“sockaddr_in”声明为静态,以便在派生类中只有一个副本可用。

如果我将“sockaddr_in”声明为静态,那么我该如何初始化这个结构呢?

1 个答案:

答案 0 :(得分:2)

初始化任何其他变量的方式相同。您只需要对其进行限定,以便编译器可以找到它:

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 = ...
    ...
}