CPP学习之——私有静态成员变量(17.2)

一 概述

上一节所讲的静态成员变量都是公有的,因此程序中的所有函数都可以访问它,假如我们不想让所有的函数都可以访问它,那么我们可以将它声明为私有的,这样就只能通过该类的公有成员函数才能访问它,但前提是你必须创建该类的一个对象

二 示例演示及结果输出

2.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
class A
{
private:
static int x;
public:
void Func(){cout<<A::x;}
};
int A::x=1000;
void Func1(){cout<<A::x;}
int main()
{
Func1();
return 0;
}

2.2 结果

1
error: 'int A::x' is private int A::x=1000;

2.3 修改

  • 将Func1方法注释掉
  • 在main方法中用对象方法调用Func

2.4 修改后代码

1
2
3
4
5
6
int main()
{
A a;
a.Func();
return 0;
}

三 总结

  • 到这里我们的静态成员变量就学完了,我们需要了解的是,假如我们要在一个类中的所有对象间共享某种数据,不如将数据声明为静态成员变量。
  • 假如你不想让类之外的所有函数都可以访问该数据,那么不妨将其定义为私有成员,那么只有该类的公有成员才可以访问它。
  • 当然访问的前提是必须创建一个属于该类的对象