"无法将'MyClass'转换为'bool'"模板编程出错

Yos*_*Yos 1 c++ templates

我正在玩模板并试过以下但是'无法将'MyClass'转换为'bool'错误?

#include "Unit2.h"
using namespace std;

template <class T>
T GetMax (T a, T b) {
  T result;
  result = (a > b) ? a : b;
  return (result);
}

int main () {
  MyClass k1( 10, "A" );
  MyClass k2( 50, "B" );
  MyClass k3( 0,"" );
  k3 = GetMax<MyClass>(k1,k2);

  cout << k3.GetName() << endl;

  return 0;
}
//---------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我为myclass定义了一个>运算符,如下所示:

MyClass& MyClass::operator>(MyClass &rhs)
{
    MyClass& rkReturn = ( m_iSize > rhs.m_iSize ) ? *this : rhs;
    return rkReturn; 
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

您的>操作员应该返回bool,而不是MyClass参考.