Essential C++ 练习4.3

  • 为什么我们会想写一个class,将这些数据封装在其中呢?因为藉由这样的封装,我们便可以封装这些数据,避免外界直接存取它们;只开放一小组函数作为对外接口。更进一步,我们还可以因此将这些对象的名称隐藏于类范围之内,不和其它全局变量实体发生名称上的冲突。由于我们希望每个全局变量都仅有一份,所以将它们声明为static members,并且也将它们的存取函数声明为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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容