运算符在c ++中为类重载

时间:2015-03-28 08:58:39

标签: c++ operator-overloading operator-keyword

我在programmr.com上尝试锻炼。但我没有得到基本运算符重载的示例。有人可以在下面解释我。  挑战是: - “重载类'temp'的+运算符,以添加并返回类'temp'的两个对象的答案。”

   #include <iostream>

using namespace std;

class temp
{
  int value;

public:
  temp(int v=0) : value(v) { }

  //WRITE YOUR CODE HERE



  //

  int getVal()
  {
      return value;
  }
};

int main()
{
    int n1, n2;
    cout << "Enter value for t1: ";
    cin >> n1;
    cout << "Enter value for t2: ";
    cin >> n2;
    temp t1(n1), t2(n2), t3;
    t3 = t1+t2;
    cout << "Their sum is " << t3.getVal();
    return 0;
    }

1 个答案:

答案 0 :(得分:0)

首先,最好使用限定符getVal声明成员函数const

  int getVal() const
  {
      return value;
  }

运营商可以看起来像

temp operator +( const temp &t1, const temp &t2 )
{
    return temp( t1.getVal() + t2.getVal() );
}

const temp operator +( const temp &t1, const temp &t2 )
{
    return temp( t1.getVal() + t2.getVal() );
}

const temp operator +( const temp &t1, const temp &t2 )
{
    return { t1.getVal() + t2.getVal() };
}

const temp operator +( const temp &t1, const temp &t2 )
{
    return t1.getVal() + t2.getVal();
}
相关问题