我可以在一个类中声明private static
成员变量,但这是什么意思?
private static
和public static
成员变量的区别是什么?
答案 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;
这很好,因为您的访问说明符是公开的。
现在将其从公共更改为私有(或受保护),并且您的代码将无法编译,因为私有成员只能由类本身访问。