在C ++中声明类中的私有静态变量

时间:2012-06-17 09:21:38

标签: c++ static-variables

我可以在一个类中声明private static成员变量,但这是什么意思?

private staticpublic static成员变量的区别是什么?

4 个答案:

答案 0 :(得分:4)

这意味着除了类本身之外的任何地方都无法访问这些变量。

可以从课外访问

public个成员 可以在类及其派生类&
中访问protected个成员 private个成员只能在课程中访问。

请注意,成员static或不同的访问规范规则适用于它 static表示存储规范,并且某个成员将在类的所有实例中共享,而不会更改 可以访问该成员。< / p>

好读:

What are access specifiers? Should I inherit with private, protected or public?

答案 1 :(得分:2)

private变量意味着它只能在声明它的类的范围内访问,也就是说,在类外声明的任何函数都不能访问(读或写)私有变量。

将变量声明为static意味着它将在该类的所有实例中保持相同的值。

答案 2 :(得分:1)

如果您需要隐藏信息(private)并拥有类变量而不是对象变量(static

,您可能希望这样做

答案 3 :(得分:1)

想象一下,你有一个带有静态int成员的类A,名为

    class A {
        public:
        static int a;
    };

然后从您的主要功能中说,您可以像使用

一样访问它
   int new_variable = A::a;

这很好,因为您的访问说明符是公开的。

现在将其从公共更改为私有(或受保护),并且您的代码将无法编译,因为私有成员只能由类本身访问。