C ++中静态类的目的是什么?

时间:2012-08-11 23:07:39

标签: c++

我最近在浏览ns2模拟器的源代码时遇到了C ++中静态类的定义:

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

我以前从未在C ++中遇到过静态类。它的属性和用途是什么?

4 个答案:

答案 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是静态的。