- 為什么我們會(huì)想寫一個(gè)class哼勇,將這些數(shù)據(jù)封裝在其中呢?因?yàn)榻逵蛇@樣的封裝呕乎,我們便可以封裝這些數(shù)據(jù)积担,避免外界直接存取它們;只開放一小組函數(shù)作為對(duì)外接口楣嘁。更進(jìn)一步磅轻,我們還可以因此將這些對(duì)象的名稱隱藏于類范圍之內(nèi),不和其它全局變量實(shí)體發(fā)生名稱上的沖突逐虚。由于我們希望每個(gè)全局變量都僅有一份聋溜,所以將它們聲明為static members,并且也將它們的存取函數(shù)聲明為static叭爱。
#include <string>
using std::string;
class globalWrapper
{
public:
static int test_passed() {return _tests_passed;}
static int tests_run() {return _tests_run;}
static int version_number() {return _version_number;}
static string version_stamp() {return _version_stamp;}
static string program_name() {return _program_name;}
static void tests_passed(int nval) {_tests_passed = nval;}
static void tests_run(int nval) {_tests_run = nval;}
static void version_number(int nval)
{_version_number = nval;}
static void version_stamp(const string& nstamp)
{_version_stamp = nstamp;}
static void program_name(const string& npn)
{_program_name = npn;}
private:
static string _program_name;
static string _version_stamp;
static int _version_number;
static int _tests_run;
static int _tests_passed;
};
string globalWrapper::_program_name;
string globalWrapper::_version_stamp;
int globalWrapper::_version_number;
int globalWrapper::_tests_run;
int globalWrapper::_tests_passed;
2020/04/03