[英]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_tcphdr
的TCPHeaderClass
的靜態實例 ,相當於
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.