簡體   English   中英

C ++中靜態類的目的是什么?

[英]What is the purpose of static class in C++?

我最近在瀏覽ns2模擬器的源代碼時遇到了C ++中靜態類的定義:

static class TCPHeaderClass : public PacketHeaderClass {
public:
        TCPHeaderClass() : PacketHeaderClass("PacketHeader/TCP",
                         sizeof(hdr_tcp)) {
        bind_offset(&hdr_tcp::offset_);
    }
} class_tcphdr;

我以前從未在C ++中遇到過靜態類。 它的屬性和用途是什么?

這是一種不尋常的語法來聲明一個名為class_tcphdrTCPHeaderClass的靜態實例 ,相當於

class TCPHeaderClass : public PacketHeaderClass {
public:
        TCPHeaderClass() : PacketHeaderClass("PacketHeader/TCP",
                         sizeof(hdr_tcp)) {
        bind_offset(&hdr_tcp::offset_);
    }
};

static TCPHeaderClass class_tcphdr;

它不是靜態的類,而是變量class_tcphdr

您的代碼相當於:

class TCPHeaderClass : public PacketHeaderClass { /* etc. */ };

static TCPHeaderClass class_tcphdr;

變量class tcphdr是靜態的,而不是類。 C ++沒有靜態類的概念,只有名稱空間。 查看C#和靜態類的語言。

該類不是靜態的,它是class_tcphdr是靜態的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM