运算符
在 C 中,运算符
运算符的友元函数方法
定义运算符时
friend bool operator<<(obj const& lhs, obj const& rhs);
当关系比较涉及检查类的私有成员时,建议使用此方法。由于友元函数可以访问类的私有成员,因此它们可以直接执行比较。
运算符的成员函数方法
在这种方法中,运算符
ostream& operator<<(obj const& rhs);
当比较涉及可公开访问的数据或简单操作时,此方法适用。但是,它有一个关键限制:如果比较需要访问私有成员,则不能使用成员函数方法。
方法比较
流式处理操作:
定义运算符时
相等和关系运算符:
对于 = 等运算符=、!=、 等,最好将它们定义为成员函数。这种方法可以轻松比较类内的私有成员。此外,它还通过避免需要额外的友元函数来简化代码。
示例
考虑以下具有 to_str() 方法的 Paragraph 类示例:
class Paragraph { public: Paragraph(std::string const& init) : m_para(init) {} std::string const& to_str() const { return m_para; } };
好友功能方法:
friend ostream & operator<<(ostream &os, const Paragraph& p) { return os << p.to_str(); }
成员函数方法:
ostream & operator<<(ostream &os) { return os << paragraph; }
在这种情况下,首选友元函数方法,因为它允许访问私有成员 m_para 用于流操作。
以上是运算符的友元函数与成员函数的详细内容。更多信息请关注PHP中文网其他相关文章!