在C ++中调用成员函数时是否需要使用 - >运算符? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有一个类似的课程

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
 }
}

两个定义之间有什么区别吗?哪个是正确的?谢谢。

编辑:引用的重复问题确实回答了我的问题。就像我在->搜索一样找不到它。我现在无法删除它,但请参考该问题以获得大量答案。

c++ syntax
1个回答
2
投票

这里没有区别。 isHoliday()已经在this对象上调用该方法。所以明确地说this->isHoliday()不是必需的并做同样的事情。

在这方面,两者都是“正确使用”,因为它取决于个人偏好。在我工作的地方,我们使用isHoliday()而不是this->isHoliday(),因为它减少了代码混乱,但这不是事实上的标准。

© www.soinside.com 2019 - 2024. All rights reserved.