TFS может импортировать из SVN, однако SVN не может импортировать из TFS. Таким образом, если Вы, don’t находят серьезное основание иначе, используете SVN, поскольку легче передумать позже.
Одна из лучших вещей о SVN - то, что каждая система управления исходным кодом, о которой я знаю, может импортировать из него, таким образом выбор SVN нас опция очень с низким риском.
It's just a convenient naming convention, it means nothing to the language. Just be sure you don't follow it with an upper-case letter: What does double underscore ( __const) mean in C?
Ничего особенного. Он просто назвал его так, чтобы различать переменные-члены и имена параметров.
Подчеркивание - допустимый символ в идентификаторах C ++.
Скорее всего, автор кода пытался избежать потенциального конфликта между именами элементов данных и именами параметров конструктора в списке инициализаторов. Вполне вероятно, что автор не знал о том, что правила поиска C ++ гарантируют, что конфликт все равно не возникнет. Т.е. следующий код также даст ожидаемые результаты
class floatCoords {
public:
floatCoords(float x, float y, float width, float height)
: x(x), y(y), width(width), height(height)
{
}
float x, y, width, height;
...
, хотя он может сбить с толку неподготовленного читателя.
Конечно, внутри тела конструктора имена параметров будут скрывать имена членов, что делает необходимым используйте this -> ...
или полные имена для доступа к элементам данных. Скорее всего, автор кода пытался этого избежать.
Это просто соглашение об именах переменных, которое принимают разные люди / организации. На первый взгляд это может показаться ненужным, но на самом деле очень полезно при чтении и написании кода, особенно когда у вас есть параметры и переменные-члены с одинаковыми именами. Например, обычно могут быть следующие три случая:
class A {
void foo(int age_) { //parameter
int age = 18; //local scope
if (age_ > age) cout << legal << endl;
}
int _age; //member
};
В приведенном выше примере:
Это просто имена для передаваемых параметров. Они совпадают с переменными-членами и используются для инициализаторов.
Нет особого значения - это просто соглашение, которое некоторые люди могут использовать.
Они не имеют синтаксического значения. Однако, если у вас есть несколько полей (например, x
, y
, ширина
и высота
), обычно используется назовите параметры конструктора, которые инициализируют их, с помощью имени поля и символа подчеркивания в начале.
The purpose of those underscores is to distinguish the parameter variable float _x
and the member variable float x
. Syntactically, there's no special meaning added due to the underscores. I personally prefer to prefix all parameters with a_
and prefix all member variables with m_
when I do have to code C++.
So when I do get into a situation where I have to mix and match local, member, and parameter variables, I know which ones I am dealing with.
int y = a_x * 2;
m_x = y + 3;
, потому что если вы назовете den float x, float y и т. Д., Вы не сможете получить доступ к фактическим полям класса, потому что они имеют то же имя.
это не имеет ничего общего с язык, это просто соглашение реального программиста (я думаю, чтобы сделать код более очевидным)