我想实现一个基类,它将充当为派生类发送UDP消息的接口。所以,我想将“sockaddr_in”声明为静态,以便在派生类中只有一个副本可用。
如果我将“sockaddr_in”声明为静态,那么我该如何初始化这个结构呢?
答案 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 = ...
...
}