简体   繁体   English

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

[英]use of static sockaddr_in struct in c++

I want to implement a base class that would act as interface to send UDP message for derived classes. 我想实现一个基类,该基类将充当接口以为派生类发送UDP消息。 So, I want to declare "sockaddr_in" as static so that only one copy would be available among derived classes. 因此,我想将“ sockaddr_in”声明为静态的,以便在派生类中只有一个副本可用。

If I declare "sockaddr_in" as static then how can I initialize this structure? 如果我将“ sockaddr_in”声明为静态,那么如何初始化该结构?

The same way you initialize any other variable. 初始化任何其他变量的方式相同。 You just have to qualify it so the compiler can find it: 您只需要限定它,以便编译器可以找到它:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM