这个问题在这里已有答案:
我有一个类似的课程
class Date{
public:
Date(int year, int month, int date);
Date(const Date &d);
Date &operator=(const Date &d);
bool isHoliday();
void addDays(int days);
}
在我的addDays()
实现中,我需要打电话给isHoliday()
。我有以下两个选项,编译器似乎都允许这两个选项。
选项1:
void Date::addDays(int days) {
if (this->isHoliday()) {
// body
}
}
选项2:
void Date::addDays(int days) {
if (isHoliday()) {
// body
}
}
两个定义之间有什么区别吗?哪个是正确的?谢谢。
编辑:引用的重复问题确实回答了我的问题。就像我在->
搜索一样找不到它。我现在无法删除它,但请参考该问题以获得大量答案。
这里没有区别。 isHoliday()
已经在this
对象上调用该方法。所以明确地说this->isHoliday()
不是必需的并做同样的事情。
在这方面,两者都是“正确使用”,因为它取决于个人偏好。在我工作的地方,我们使用isHoliday()
而不是this->isHoliday()
,因为它减少了代码混乱,但这不是事实上的标准。