用setter_getter类来简化使用你的类

ZDNet软件频道 时间:2003-06-05 作者:ZDNet China |  我要评论(1)
本文关键词:cpptips
通过使用setter_getter函数,你可以提供访问和修改函数,而不会丢失任何实现隐藏范型(paradigm)的好处。
本文译自Builder.com,未经许可请勿转载当设计和实现一个新的类时,你常常要提供访问属性和修改属性的函数,即getter和setter函数。

这些函数常常有着下面的形式:

class CEmployee
{
public:
    void set_name( const std::string & str)
    {
        std::cout << "settting name..." << std::endl ;
        m_strName = str;
    }

    const std::string & get_name() const
    {
        std::cout << "getting name..." << std::endl ;
        return m_strName;
    }

    /*  其它函数,如get_name、set_name */
};

为了隐藏实现细节,你可以提供setter和getter函数。你不应该提供到底层细节的直接或者无限制的访问。下面是你应该尽量避免的:

class CEmployee
{
public:
    // 提供了对底层细节的无限制访问
    std::string & name()
    { return m_strName; }
};

你希望有一种更加友好的访问和修改属性的方法,并且用这种方法不会丢失任何实现隐藏的好处。

例如

void print( const std::string & str)
{ std::cout << str; }

CEmployee test;
// 内在调用set_name
test.name() = "new name";
//内在调用get_name
print( test.name());


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