首页 > 后端开发 > C++ > 运算符的友元函数与成员函数

运算符的友元函数与成员函数

Mary-Kate Olsen
发布: 2024-12-14 16:07:16
原创
691 人浏览过

Friend Function vs. Member Function for Operator

运算符

在 C 中,运算符

运算符的友元函数方法

定义运算符时

friend bool operator<<(obj const&amp; lhs, obj const&amp; rhs);
登录后复制

当关系比较涉及检查类的私有成员时,建议使用此方法。由于友元函数可以访问类的私有成员,因此它们可以直接执行比较。

运算符的成员函数方法

在这种方法中,运算符

ostream&amp; operator<<(obj const&amp; rhs);
登录后复制

当比较涉及可公开访问的数据或简单操作时,此方法适用。但是,它有一个关键限制:如果比较需要访问私有成员,则不能使用成员函数方法。

方法比较

流式处理操作:
定义运算符时

相等和关系运算符:
对于 = 等运算符=、!=、 等,最好将它们定义为成员函数。这种方法可以轻松比较类内的私有成员。此外,它还通过避免需要额外的友元函数来简化代码。

示例

考虑以下具有 to_str() 方法的 Paragraph 类示例:

class Paragraph
{
    public:
        Paragraph(std::string const&amp; init) : m_para(init) {}

        std::string const&amp; to_str() const { return m_para; }
};
登录后复制

好友功能方法:

friend ostream &amp; operator<<(ostream &amp;os, const Paragraph&amp; p) {
    return os << p.to_str();
}
登录后复制

成员函数方法:

ostream &amp; operator<<(ostream &amp;os) {
    return os << paragraph;
}
登录后复制

在这种情况下,首选友元函数方法,因为它允许访问私有成员 m_para 用于流操作。

以上是运算符的友元函数与成员函数的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板