在我的课堂上,我把原型(公共)写成:
bool operator< (const MyClass& obj);我将类外部的方法(在同一个文件中)实现为:
bool MyClass::operator< (const MyClass& obj)
{
cout << "operator< used" << endl;
//do my work
}问题是,尽管我的重载操作符在显式调用(如obj1->operator<(*obj2))时会被调用,但在隐式调用(如obj1 < obj2)时则不会被调用。
我已经跟随了这篇文章的重载教程,我看不出我错过了什么或者做错了什么。
发布于 2013-10-26 19:28:34
obj1和obj2是指针,所以您可以使用*obj1 < *obj2。
发布于 2013-10-26 19:32:27
obj1和obj2是指向MyClass的指针。如果要调用运算符<,请使用:*obj2 1<*obj2 2
https://stackoverflow.com/questions/19610919
复制相似问题