Тема 10. Ключові слова та ідентифікатори.pdf

Full Transcript

Тема 10. Ключові слова та ідентифікатори Мова C++ має зарезервований набір з 84 слів (включаючи версію С++17) для власного використання. Ці слова називаються ключовими словами, кожне з яких має своє особливе значення. Ось список всіх ключових слів в мові C++ (включаючи C++17): alignas (C++1...

Тема 10. Ключові слова та ідентифікатори Мова C++ має зарезервований набір з 84 слів (включаючи версію С++17) для власного використання. Ці слова називаються ключовими словами, кожне з яких має своє особливе значення. Ось список всіх ключових слів в мові C++ (включаючи C++17): alignas (C++11) alignof (C++11) and and_eq asm auto bitand bitor bool break case catch char char16_t (C++11) char32_t (C++11) class compl const constexp r (C++11) const_ca st continue decltype (C++11) default delete do double dynamic_ cast else enum explicit export extern false float for friend goto if inline int long str mutable uct namespac switch e template new this noexcept thread_l (C++11) ocal not (C++11) not_eq throw nullptr true (C++11) try operator typedef or typeid or_eq typename private union protecte unsigned d using public virtual register void reinterp volatile ret_cast wchar_t return while short xor signed xor_eq sizeof static static_a ssert (C++11) static_c ast Ми вже стикалися з деякими ключовими словами, такими як int, void і return. Разом з набором операторів, ключові слова визначають всю мову програмування C++ (не включаючи команд препроцесора). Оскільки вони мають особливі значення, то різні IDE виділяють/підсвічують їх різними кольорами. Ідентифікатори Ідентифікатор — це ім’я змінної, функції, класу або іншого об’єкту в C++. Ми можемо визначати ідентифікатори будь-якими словами/іменами. Тим не менш, є кілька загальних правил, яких необхідно дотримуватися: Правило №1: Ідентифікатор не може бути ключовим словом. Ключові слова зарезервовані. Правило №2: Ідентифікатор може складатися тільки з букв (нижнього або верхнього регістру), цифр або символів підкреслення. Це означає, що всі інші символи та пробіли заборонені. Правило №3: Ідентифікатор повинен починатися з літери (нижнього або верхнього регістру). Він не повинен починатися з цифри. Правило №4: Мова C++ розрізняє нижній регістр від верхнього. nvalue відрізняється від nValue і відрізняється від NVALUE. Тепер, коли ви знаєте, як можна називати об’єкти, давайте поговоримо про те, як їх потрібно називати. По-перше, в C++ імена змінних починаються з літери в нижньому регістрі. Якщо іменем змінної є одне слово, то це слово повинно бути записано в нижньому регістрі: int value; // коректно int Value; // некоректно (повинно починатися з літери в нижньому регістрі) int VALUE; // некоректно (повинно починатися з літери в нижньому регістрі) int VaLuE; // некоректно (повинно починатися з літери в нижньому регістрі) Як правило, імена функцій також починаються з літери в нижньому регістрі (хоча не завжди). Ми будемо дотримуватися цього стилю, оскільки навіть функція main() (головна функція у всіх програмах) починається з букви в нижньому регістрі, як і всі функції зі Стандартної бібліотеки C++. Імена ідентифікаторів, які починаються з великої літери, використовуються для структур та класів (про це пізніше). Якщо ім’я змінної або функції складається з декількох слів, то є два варіанти: розділити підкресленням або використовувати принцип CamelCase — коли декілька слів пишуться разом, без пробілів, і кожне нове слово пишеться з великої літери. CamelCase (в перекладі як «ВерблюжийСтиль») отримав свою назву через використання великих літер, які нагадують верблюжі горби. int my_variable_name; // коректно (розділяється символом підкреслення) void my_function_name(); // коректно (розділяється символом підкреслення) int myVariableName; // коректно (використовується CamelCase) void myFunctionName(); // коректно (використовується CamelCase) int my variable name; // некоректно (пробіли заборонені) void my function name(); // некоректно (пробіли заборонені) int MyVariableName; // працює, але не рекомендується (варто починати з літери в нижньому регістрі) void MyFunctionName(); // працює, але не рекомендується Хоча навіть Стандартна бібліотека C++ використовує символ підкреслення для змінних і функцій, ми все ж будемо використовувати CamelCase для кращої читабельності коду. Іноді ви будете бачити поєднання двох способів: підкреслення для змінних і CamelCase для функцій. Варто відзначити, що якщо ви працюєте з чужим кодом, то хорошою практикою буде дотримуватися стилю, в якому написаний цей код, навіть якщо він не відповідає вищевказаним рекомендаціям. По-друге, не починайте ваші імена з символу підкреслення, тому що такі імена вже зарезервовані для операційної системи, бібліотек і/або використовуються компілятором. По-третє, (це, мабуть, найважливіше правило з усіх) використовуйте в якості ідентифікаторів тільки ті імена, які реально описують те, чим є об’єкт. Дуже характерно для недосвідчених програмістів скорочувати назви змінних, щоб заощадити час при наборі коду або тому що вони думають, що все і так зрозуміло. У більшості випадків не все завжди є зрозумілим і очевидним. В ідеалі, змінні потрібно називати так, щоб людина, яка перший раз побачила ваш код, зрозуміла якнайшвидше, що цей код виконує. Через 3 місяці, коли ви будете переглядати свої програми, ви забудете, як вони працюють, і будете вдячні самому собі за те, що називали змінні по суті, а не “як попало”. Чим складніший код, тим простішими і зрозумілішими повинні бути ідентифікатори. int ccount Погано Ніхто не знає, що таке ccount. int customerCount Добре Тепер зрозуміло, що ми рахуємо. int i Погано* В більшості нетривіальних випадках — погано, в простих прикладах — може бути (наприклад, в циклах). int index 50/50 Добре, якщо очевидно, індексом чого є змінна. int totalScore Добре Все зрозуміло. int _count Погано Не починайте імена змінних з символу підкреслювання. int count 50/50 Добре, якщо очевидно, що ми рахуємо. int data Погано Який тип даних? int value1, value2 50/50 Може бути складно зрозуміти різницю між змінними. int numberOfApples Добре Все зрозуміло. int monstersKilled Добре Все зрозуміло. int x, y Погано* В більшості нетривіальних випадків — погано, в простих прикладах — може бути (наприклад, в математичних функціях). int ccount Погано Ніхто не знає, що таке ccount. Примітка: Можна використовувати тривіальні імена для змінних, які мають тривіальне використання (наприклад, для змінних в циклі, в простих математичних функціях тощо). По-четверте, уточнюючий коментар завжди буде тільки плюсом. Наприклад, ми оголосили змінну з ім’ям numberOfChars, яка повинна зберігати кількість символів певної частини рядка. Скільки символів в рядку Hello, world!: 10, 11, 12 чи 13? Це залежить від того, враховуємо ми пробіли і розділові знаки чи ні. Замість того, щоб називати змінну numberOfCharsIncludingWhitespaceAndPunctuation, краще записати хороший коментар поруч, який прояснить ситуацію: // Ця змінна рахує кількість символів частини рядка, включаючи пробіли і розділові знаки int numberOfChars;

Use Quizgecko on...
Browser
Browser