是否需要使用 - >运算符在C 中调用成员函数时

Is it required to use -> operator when calling a member function in C++?

本文关键字:调用 成员 函数 运算符 gt 是否      更新时间:2023-10-16

我有一个类似

的类
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(),因为它会减少代码混乱,但这不是事实上的标准。