注册 登录
编程论坛 C++教室

运算符重载总是出现问题。

上官伊萱 发布于 2010-10-20 15:02, 616 次点击
刚刚学会的重载,结果编译出来老是出现'operator >' is ambiguous,有什么错误吗。。。

#include<iostream>
#include<string>
using namespace std;

class String
{
public:
    String(){p=NULL;}
    String(char *str);
    void display();
    friend bool operator >(String &string1,String &string2);

    char *p;
};
bool operator >(String &string1,String &string2)
{
    if(strcmp(string1.p,string2.p)>0)
        return true;
    else return false;
}
String::String(char *str)
{p=str;}
void String::display()
{cout<<p;}


int main()
{
    String string1("Hello"),string2("Book");
    cout<<(string1 >string2)<<endl;
}
4 回复
#2
personallife2010-10-20 15:57
vs2005编译了一下 没有问题...
#3
myth_feng2010-10-21 10:48
BCB编译 也没有问题啊。。。
#4
xinyuan542010-10-21 11:27
vs2008···没问题··输出1
#5
上官伊萱2010-10-22 16:53
额 那是我的版本有问题了。。。换个试试。。。。
1