Здравствуйте, Takadam, Вы писали:
T>Нигде нет четкого ответа. Какой самый распространенный? Только не говорите: используй такой, как проекте. Вот такой популярный?
Самый лучший code convention — это тот, который соблюдается во всем проекте.
А уж какой он именно — дело десятое.
Здравствуйте, Takadam, Вы писали:
T>Нигде нет четкого ответа. Какой самый распространенный? Только не говорите: используй такой, как проекте. Вот такой популярный?
1. Если используется только стандартная библиотека C/C++ — следуй ее правилам
2. Если используется что-то еще (Win API, MFC, Qt, BCB++, ...) — следуй его правилам.
Аргументация :
Если (1) — значит, ты претендуешь (хотя бы в принципе, не обязательно в действительности) на платформонезависимость, то есть пишешь именно на C/C++. В этом случае лучше не использовать naming conventions чего-то еще.
Если (2) — значит, переносимость имеет место только в рамках этого фреймворка (для Win API/MFC никакая, для Qt — в пределах Qt и т.д.). В этом случае ты пишешь фактически для этого фреймворка на С++, следуй правилам фреймворка.
Здравствуйте, Takadam, Вы писали:
T>Нигде нет четкого ответа. Какой самый распространенный? Только не говорите: используй такой, как проекте. Вот такой популярный?
Так его и нету, все зависит от проекта, можно посмотреть популярные библиотеки и увидеть что между ними тоже разница.
namespace my_namespace { //boost, xercesc и т.д. - lower case, тут вроде разночтений нетclass MyClass { // Qt, в boost, stl - my_classpublic:
void myMethod() // Qt, в boost и stl my_methodint myVar // или лучше my_var1 ?
//а тут кто во что горазд, myVar_, m_myVar, _myVar, если просто myVar методы должны быть с большой
}
}
Здравствуйте, Takadam, Вы писали:
T>Нигде нет четкого ответа. Какой самый распространенный? Только не говорите: используй такой, как проекте. Вот такой популярный?
Если совсем не знаешь какой стиль именования использовать, посмотри как сделан Boost. По мне так там отличный стиль для любого проекта, в том числе и на Qt.
P.S. Ещё рекомендую использовать автоматическое форматирование кода:
В коллективном проекте код должен выглядеть так, как будь-то его написал один человек. Да и просто из банальной лени дотошно форматировать свой код попросту не охота. А так же чтобы обзоры кода не превращались в обзоры стиля кода, придуман этот инструмент. Возможности его форматирования превышают возможности редактора интегрированной среды разработки, и тем не менее он простой. Рекомендую так же установить universalindentgui, а уже через неё использовать эту или может быть даже другие подобные программы.
Здравствуйте, Takadam, Вы писали:
T>Нигде нет четкого ответа. Какой самый распространенный? Только не говорите: используй такой, как проекте. Вот такой популярный?
в плюсовых проектах чаще встречается camel конвенция.
Здравствуйте, placement_new, Вы писали:
_>в плюсовых проектах чаще встречается camel конвенция.
ты имел в виду lower_case ?
camelCasing описан здесь: https://en.wikipedia.org/wiki/CamelCase
Здравствуйте, Takadam, Вы писали:
T>Нигде нет четкого ответа.
думаешь здесь получить? наивно полагаешь, т.к. нужны средства для сбора статистики.
рекомендую погуглить в первую очередь: http://stackoverflow.com/questions/3706379/what-is-a-good-naming-convention-for-vars-methods-etc-in-c
boost и STL придерживаются lower_case конвенции
в разных компаниях придерживаются разных стилей. у нас в компании PascalCasing используется
Здравствуйте, Takadam, Вы писали: T>Нигде нет четкого ответа. Какой самый распространенный?
У меня такой:
namespace my_namespace {
class MyClass
{
public:
void my_method();
Int my_public_var;
protected:
Int m_my_private_var;
}
} // my_namespace
Достаточно удобно: типы с большой (стандартные переопределены), переменные через подчеркивание, закрытые члены с m_ (чтобы не конфликтовать с геттерами-сеттерами), макросы большими буквами. Но конфликт со стандартной библиотекой неслабо отравляет жизнь. Поэтому если бы писал что-то с нуля, то взял бы готовый boost-stl стиль и не мудорствовал.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Takadam, Вы писали:
T>>Нигде нет четкого ответа. Какой самый распространенный? Только не говорите: используй такой, как проекте. Вот такой популярный?
PD>1. Если используется только стандартная библиотека C/C++ — следуй ее правилам PD>2. Если используется что-то еще (Win API, MFC, Qt, BCB++, ...) — следуй его правилам.
А если и то и другое?
У меня в проекте ядро на стандартной библиотеке, гуи на WTL и Qt
Представляете какая у меня каша из naming conventions?