C++类中符号定义的方法

//  "a<b"的重载的三种方法
//作为成员函数重载(常见)
class Person{
    string name;
    int age;
public:
    Person(const char* name, int age):name(name),age(age){}
     bool operator<(const Person& b);
 
};
bool Person::operator<(const Person& b)
{
//作为成员函数时,*this即为左操作数a
...
}
 
//作为友元函数重载
class Person{
    string name;
    int age;
public:
    Person(const char* name, int age):name(name),age(age){}
     friend bool operator<(const Person& a,const Person& b);
 
};
bool operator<(const Person& a,const Person& b)
{
...
}
 
//作为普通函数重载(不推荐)
class Person{
public://注意,重载运算符为普通函数时,使用到的类成员必须为public
    string name;
    int age;
public:
    Person(const char* name, int age):name(name),age(age){}
 
};
bool operator<(const Person& a,const Person& b)
{
...
}
阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页