1

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

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

4

4 回答 4

4

这意味着除了类本身之外,不能在任何地方访问这些变量。

public成员可以从类外部访问。
protected成员可以在类中访问,其派生类和
private成员只能在类中访问。

请注意,成员是否static相同,访问规范规则适用于它。
static意味着存储规范,并且某个成员将在类的所有实例之间共享,它不会改变可以访问该成员的位置

好读:

什么是访问说明符?我应该以私有、受保护还是公共继承?

于 2012-06-17T09:22:56.340 回答
2

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

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

于 2012-06-17T09:23:43.513 回答
1

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

    class A {
        public:
        static int a;
    };

让我们从您的主要功能中说,您可以像使用一样访问它

   int new_variable = A::a;

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

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

于 2012-06-17T09:32:29.580 回答
1

private如果您需要隐藏信息 ( ) 并使用类变量而不是对象变量 ( static) ,您可能想要这样做

于 2012-06-17T09:25:44.530 回答