如果构造函数是在类外部定义的,为什么不使用此关键字呢?

时间:2019-06-13 10:54:49

标签: c++ oop

在类外定义构造函数时,此关键字不用于创建变量。

"testMatch": ["**/__tests__/**/*.ts?(x)", "**/?(*.)(e2e).ts?(x)"],

1 个答案:

答案 0 :(得分:3)

您以自己的方式定义构造函数的事实对是否使用this毫无疑问。

this可用于区分局部变量或类成员。

由于范围内没有局部变量age,因此该语言假定您是在指一类成员,因此this是多余的,尽管有些人保留了它,目的是为了清楚起见。

在C ++中,您需要编写this->age才能访问该成员,或者不太清楚的(*this).age

您的构造函数可以写为

Person::Person(int initialAge) : age(std::max(0, initialAge))
{
}

参考:Benefits of Initialization lists