class Date { public: Date(int year = 1900, int month = 1, int day = 1) { _year = year; _month = month; _day = day; } //bool opeartor==(Date* this, const Date& d2) //左操作数是this,指向调用函数的对象 bool operator==(const Date& d2) { return _year == d2._year && _month == d2._month && _day == d2._day; } private: int _year; int _month; int _day; }; int main() { Date d1(2023, 7, 13); Date d2(2023, 7, 12); cout << (d1 == d2) << endl; operator==(d1, d2); //cout << (operator==(d1, d2)) << endl; cout << d1.operator==(d2) << endl; return 0; }错误原因
时间: 2024-04-13 22:24:54 浏览: 112
cpp代码-大作业第五题: 定义一个date类如下: class Date { public: void SetDate(int y,int m,int d); void IsLeapYear(); private: int year; int month; int day; }; 要求: (1)编写SetDate(int y,int m,int d)函数,实现对象中数据成员的设置; (2)编写IsLeapYear()判断该年是否是闰年。
错误原因是在调用 `operator==` 函数时的语法错误。
在 `main` 函数中,`operator==(d1, d2);` 这行代码是错误的。应该使用 `d1.operator==(d2);` 来调用成员函数 `operator==`。
另外,注释掉的 `cout` 语句 `//cout << (operator==(d1, d2)) << endl;` 也是错误的,因为 `operator==` 不是一个全局函数,不能直接通过函数名调用。
正确的调用方式是使用成员函数的形式,如 `cout << d1.operator==(d2) << endl;`。这样会调用 `d1` 对象的 `operator==` 成员函数,并输出结果。
阅读全文