Полоса прокрутки не отображается в RecyclerView

Я всегда использую this при вызове функций [].

  1. Он превращает имя функции в зависимое имя, так что функции-члены базового класса находятся внутри class.
  2. Он подавляет зависящий от аргументов поиск. У ADL есть свои преимущества, но это может привести к неожиданному поведению, и мне это нравится, если он не мешает мне.
  3. У него нет реальных недостатков, поэтому я использую его для всех вызовов функций-членов для согласованности причины.
  4. Я программирую на Python много, где явный self является обязательным, поэтому для меня это не является реальной нагрузкой.

Но для членов данных я использую это только тогда, когда это необходимо, потому что ADL не происходит. Чтобы ответить на ваши конкретные вопросы:

В рамках функции-члена класса в C ++ это имеет значение, если я использую this-> dataMember или просто dataMember?

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

#include <iostream>

int i = 1;

struct R {
  int i;
  R(): i(2) { }
};

template<typename T>
struct S: T {
  void f() {
    std::cout << i << ' '     // selects ::i
              << this->i      // selects R::i
              << std::endl;
  }
};

int main() {
  S<R>().f();
}

Что считается лучшим стилем?

Я не думаю, что в сообществе есть сильное мнение об этом. Использовать любой стиль, но быть последовательным.

Есть ли разница в производительности?

Я уверен, что нет.

35
задан Sufian 27 August 2016 в 17:55
поделиться