Как правильно использовать this
ссылку на класс?
Иногда я использую его внутри метода, чтобы выяснить, что используемая переменная является переменной-членом, а не объявленной внутри метода, но с другой стороны, мне интересно, является ли это хорошей причиной для этого,как я думаю, вы всегда должны кодировать (и комментировать) таким образом, который самоочевиден и поэтому делает ненужным использование this
ненужным, и другой причиной этого будет то, что вы на самом деле производите больше кода, чем необходимо.
void function() {
while(i != this->length) //length is member var
/*do something*/
}
Другой способ его использования, с которым я часто сталкиваюсь, - внутри конструкторов (в основном в Java), так как параметры имеют то же имя, что и переменные-члены, которые должны быть инициализированы.Поскольку Primer утверждает, что это плохой код, я не делаю этого, но, с другой стороны, я вижу, как использовать то же имя, что и для членов-членов, поскольку имена параметров очищают от того, какое использование они используют.
C++
Constructor::Constructor(int size,int value) : this->size(size),
this->value(value) {};
Java
Constructor(int size,int value) {
this->size = size;
this->value = value;
}
Надеюсь, что на самом деле существует правило, учитывающее оба языка (Java / c ++), если нет, я сделаю метку только для c ++, так как это тот, который меня больше интересует.