将函数和数据放入一个私有命名空间

ZDNet软件频道 时间:2003-07-04 作者:ZDNet China |  我要评论()
本文关键词:cpp
有时候,为了能够实现执行隐藏,你会使用匿名的命名空间:以命名空间编写的所有数据和函数都不可访问,除非通过一些可编译的源文件。
本文译自Builder.com,未经许可请勿转载很多开发程序范例都允许执行隐藏。例如,当建立一个新的类时,你设置了用户只能通过一个界面才能访问这一类,类中的数据和函数都被隐藏起来。

有时候,为了能够实现执行隐藏,你会使用匿名的命名空间:以命名空间编写的所有数据和函数都不可访问,除非通过一些可编译的源文件,所以你将不能随便访问:

// test.h

#ifndef TEST_H
#define TEST_H

class CTest
{
public:
    /* interface accessible to clients */

private:
    /* hidden details */
};

#endif // TEST_H
// End of test.h

// test.cpp


#include <test.h>

namespace
{
    /* code and/ or data; not available outside test.cpp */
};

/* implementation of CTest class; will contain
   code that uses code/ data from the anonymous namespace */

在面象对象程序设计中,你可以使用以上的方法,但是在其他的更普通的程序设计中你不能使用这一方法。

假设你开发一个普通的函数f(),这一函数在内部上调用了另一个普通函数g()。你不能将g()函数暴露于程序之中,因为g()函数详细说明了执行的细节,它不应该被用户所查看。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134