Подтвердить что ты не робот

Использование ключевого слова "this" в С++

Возможный дубликат:
Чрезмерное использование этого в C++ кодовом запахе
Когда следует использовать ключевое слово "this" в C++?
Есть ли причина использовать this->

В C++, является ключевым словом this обычно опускается? Например:

Person::Person(int age) {
    _age = age;
}

В отличие от:

Person::Person(int age) {
    this->_age = age;
}
4b9b3361

Ответ 1

Да, это не обязательно и обычно опускается. Это может потребоваться для доступа к переменным после того, как они были переопределены в области:

Person::Person() {
    int age;
    this->age = 1;
}

Также это:

Person::Person(int _age) {
    age = _age;
}

Это довольно плохой стиль; если вам нужен инициализатор с тем же именем, используйте эту запись:

Person::Person(int age) : age(age) {}

Более подробная информация здесь: https://en.cppreference.com/w/cpp/language/initializer_list

Ответ 2

Это предпочтение программиста. Лично мне нравится использовать this, поскольку он явно отмечает членов объекта. Конечно, _ делает то же самое (только когда вы следуете за соглашением)

Ответ 3

В любом случае работает, но во многих местах существуют стандарты кодирования, которые будут направлять разработчика так или иначе. Если такой политики не будет, просто следуйте своему сердцу. Одна вещь, однако, ДЕЙСТВИТЕЛЬНО помогает читабельности кода, если вы его используете. особенно если вы не соблюдаете соглашение об именах для имен переменных класса.

Ответ 4

this указывает на объект, в функции члена которого он указан, поэтому он является необязательным.

Ответ 5

Для примера, приведенного выше, он обычно опускается, да. Однако в любом случае синтаксически корректно.

Ответ 6

Да. если только не существует двусмысленности.

Он также иногда используется, чтобы избежать некоторых компиляторов, оптимизирующих вызов виртуальной функции.