美文网首页
C++ - 运算符重载为友元函数

C++ - 运算符重载为友元函数

作者: Mitchell | 来源:发表于2016-01-19 21:02 被阅读151次
  • 通常,将运算符重载为类的成员函数
  • 重载为友元函数的情况:
    • 成员函数不能满足使用要求
    • 普通函数,又不能访问类的私有成员
class Complex{
      double real,imag;
    public:
      Complex(double r,double i):real(r),imag(i){};
      Complex operator+(double r);
};
//能解释 c+5,却无法解决 5+c
Complex Complex::operator+(double r){
    return Complex(real +r, image);
}
//这样解决了 5+c 但是由于不能访问私有成员变量,所以需要使用友元来声明让这个函数可以访问私有成员变量。
Complex operator+(double r,const Complex &c){
    return  Complex(c.real+r,c.imag);
}

相关文章

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • c++——函数符号重载2-15

    一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好重载为类的友元函数。以下一些双目运算符不能重载为类的...

  • 1.2.17_C++ ++ 和 -- 运算符重载

    C++ 重载运算符和重载函数 递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符...

  • 日记之旅第七天

    上午:重点讲解了函数重载,其中包括运算符重载,函数成员重载。运算符重载结合了昨天所讲的友元函数一起使用 下午:复习...

  • c++ 运算符重载

    双目运算符:推荐重载为友元函数成员函数:int operator+ (const T& a); 左值为隐藏参数 *...

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • C++ - 运算符重载为友元函数

    通常,将运算符重载为类的成员函数 重载为友元函数的情况:成员函数不能满足使用要求普通函数,又不能访问类的私有成员

  • C++运算符重载

    C++运算符重载的实质:运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够...

  • 1.2.14_C++ 二元运算符重载

    C++ 重载运算符和重载函数 二元运算符需要两个参数,下面是二元运算符的实例。 我们平常使用的加运算符( + )、...

  • 1.2.13_C++ 一元运算符重载

    C++ 重载运算符和重载函数 一元运算符只对一个操作数进行操作,下面是一元运算符的实例: 递增运算符( ++ )和...

网友评论

      本文标题:C++ - 运算符重载为友元函数

      本文链接:https://www.haomeiwen.com/subject/wvtlkttx.html