c++的重载运算符为什么不能简单地a+b直接调用

2025-05-22 19:09:42
推荐回答(2个)
回答1:

因为你的类当中有很多成员,编译器并不知道你要相加哪些东西。而且字符串是不可以相加的。
例如:
class Class

{
int student_count; // 学生数量
char *class_name; // 班级名称

}
两个班级 相加 合班, 只有学生数量会相加,名称不会改变

回答2:

定义要这么定义,使用的时候,完全可以写 a+b,无须写a.operator+(b)
如果a是指针,倒是可以用a->operator+(b)