Тот факт, что вы определяете свой конструктор так, как вы это делаете, не влияет на то, используете ли вы this
.
this
может использоваться для устранения неоднозначности между локальной переменной или членом класса.
Поскольку в области действия нет локальной переменной age
, язык предполагает, что вы ссылаетесь на члена класса, поэтому this
является излишним, хотя некоторые люди сохраняют его для предполагаемой ясности.
В C ++ вам нужно написать this->age
для доступа к члену или менее понятное (*this).age
.
Ваш конструктор может быть записан как
Person::Person(int initialAge) : age(std::max(0, initialAge))
{
}
Ссылка: Преимущества списков инициализации