Ответ 1
Это, в основном, личное предпочтение, но позвольте мне поделиться своей точкой зрения на проблему изнутри компании, где одновременно происходит множество небольших игр (и поэтому вокруг меня используется множество стилей кодирования).
У этой ссылки есть несколько полезных, связанных, ответов: Зачем использовать префиксы для переменных-членов в классах С++
Ваш вариант 1:
void A::setNumber(int number)
{
this->number = number;
}
Во-первых, многие программисты склонны находить это громоздким, постоянно набирать "this- > ". Во-вторых, и что более важно, если какая-либо из ваших переменных разделяет имя с параметром или локальной переменной, find-replace, предназначенная, чтобы сказать, изменить имя "число", может повлиять на переменные-члены, находящиеся в области поиска-замены, как хорошо.
Ваш вариант 2:
void A::setNumber(int number)
{
A::number = number;
}
Проблема, с которой я столкнулся, заключается в том, что в больших классах или классах с большими функциями (где вы не можете увидеть, что функция или класс названы неожиданно), форматирование A::( вещь) выглядит очень как доступ к части пространства имен, и поэтому может вводить в заблуждение. Другая проблема такая же, как и # 2 из предыдущего варианта, если ваши имена похожи на любые переменные, которые вы используете, иногда может быть неожиданное замешательство.
Ваш вариант 3:
void A::setNumber(int number)
{
mNumber = number;
}
Это лучший из трех представленных вариантов. Создавая (и удерживая!!) Синтаксис, который включает в себя четкий и значимый префикс, вы не только создаете уникальное имя, которое не будет использовать локальная (или глобальная) переменная, но вы сразу же очистите, где объявлена эта переменная, независимо от контекста, в котором вы его находите. Я видел, как это делалось как "mVariable" и как этот "m_variable", и в основном это зависит от того, предпочитаете ли вы подчеркивания для конкатенации верхнего регистра. Кроме того, если ваш стиль имеет тенденцию добавлять такие вещи, как "p on для указателей" или "g on for globals", этот стиль будет хорошо зашифрован и ожидается читателями.