我最近在浏览ns2模拟器的源代码时遇到了C ++中静态类的定义:
static class TCPHeaderClass : public PacketHeaderClass {
public:
TCPHeaderClass() : PacketHeaderClass("PacketHeader/TCP",
sizeof(hdr_tcp)) {
bind_offset(&hdr_tcp::offset_);
}
} class_tcphdr;
我以前从未在C ++中遇到过静态类。它的属性和用途是什么?
答案 0 :(得分:8)
这是一种不常见的语法,用于声明名为TCPHeaderClass
的{{1}}的静态实例,相当于
class_tcphdr
答案 1 :(得分:5)
不是静态的类,而是变量class_tcphdr
。
您的代码相当于:
class TCPHeaderClass : public PacketHeaderClass { /* etc. */ };
static TCPHeaderClass class_tcphdr;
答案 2 :(得分:1)
变量class tcphdr
是静态的,而不是类。 C ++没有静态类的概念,只有名称空间。查看C#和静态类的语言。
答案 3 :(得分:1)
该类不是静态的,class_tcphdr
是静态的。