C++#
У довіднику з C++ API VEX IQ (1-го покоління) пояснюються класи, об’єкти, конструктори, функції-члени та змінні, що використовуються в проектах VEXcode C++.
Використовуйте це посилання, коли хочете зрозуміти, як створюється пристрій або функція, перевірити, яку сигнатуру функції використовувати, або порівняти пов’язані функції-члени в класі.
Команди C++ використовуються в проектах VEXcode IQ C++. Сторінки C++ організовані інакше, ніж сторінки блоків, оскільки багато команд належать до класу. Сторінка може спочатку пояснювати клас і як створити об’єкт, а потім перераховувати функції-члени, які можна викликати для цього об’єкта.
Як читати сторінку класу C++#
Сторінка класу C++ зазвичай дотримується такого порядку:
Вступ – пояснює, що являє собою клас і коли він корисний.
Похідні класи – перелічує будь-які класи, що базуються на цьому класі, якщо такі є.
Конструктор або конструктори класу – показує синтаксис, який використовується для створення об’єкта з класу.
Деструктор класу – показує синтаксис, який використовується для знищення об’єкта та звільнення його ресурсів, якщо це можливо.
Параметри – пояснює параметри конструктора, що використовуються під час створення об’єкта.
Приклад – Показано, як створити об’єкт у коді.
Функції-члени – Перелічує функції, що належать до класу, часто згруповані за призначенням.
Записи функцій – Пояснення кожної функції-члена, включаючи доступні функції, параметри, значення, що повертаються, примітки та приклади.
Не кожна сторінка має всі розділи. Наприклад, деякі сторінки не містять похідних класів, а деякі функції не мають параметрів або повернених значень.
Загальні елементи C++ API#
Елемент |
Що це означає |
|---|---|
Клас |
Тип C++ для пристрою або функції, наприклад, |
Об’єкт |
Іменований екземпляр, створений з класу, такого як |
Конструктор |
Код, який використовується для створення об’єкта з класу. |
Функція-член |
Команда, що викликається для об’єкта, така як |
Доступна функція |
Один точний підпис функції, який можна використовувати для функції-члена. Деякі функції-члени мають більше однієї доступної функції. |
Параметр |
Значення, що передається в конструктор або функцію для керування її діями. |
Повернене значення |
Значення, яке повертає функція, наприклад, |
Базовий словник C++#
Термін |
Що це означає |
|---|---|
Змінна |
Ім’я, яке зберігає значення, наприклад, |
Тип |
Тип даних, які щось зберігає, наприклад, |
Рядок |
Текст у лапках, наприклад, |
інтернет |
Додатне або від’ємне ціле число, наприклад, |
подвійний |
Числовий тип, який може містити десяткову дробу, наприклад, |
буль |
Значення, яке дорівнює |
Суперечка |
Значення, що передається у функцію-член або виклик функції, наприклад, |
Конструктори та об’єкти#
Перед використанням функцій-членів з багатьох класів C++ має існувати об’єкт. Конструктор показує, як створити цей об’єкт.
Наприклад, об’єкт Bumper Switch можна створити, надавши конструктору Smart Port, до якого підключено датчик:
bumper Bumper1 = bumper(PORT1);
Після створення об’єкта можна викликати його функції-члени:
Bumper1.pressing();
У VEXcode конфігурація пристрою часто генерується автоматично меню пристроїв. У VS Code конструктори, можливо, доведеться писати вручну.
Вибір правильної доступної функції#
Деякі функції-члени мають більше однієї доступної функції. Кожна функція використовує різний набір параметрів, тому виберіть ту, яка відповідає значенням, які має надати ваш проект.
Наприклад, функція трансмісії може мати одну версію, яка використовує поточну швидкість, та іншу версію, яка дозволяє проекту вибрати швидкість:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Обидві версії викликають drive, але друга версія надає більше контролю, оскільки вона включає параметри швидкості.
Приклад запису функції#
диск#
drive переміщує робота вперед або назад безкінечно. Робот продовжуватиме рухатися, доки йому не буде надано іншу дію, таку як поворот або зупинка.
Доступні функції
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Напрямок руху робота: |
|
|
Швидкість руху від 0% до 100% при використанні |
|
|
Одиниця вимірювання швидкості: |
Повернене значення
Ця функція не повертає значення.
Примітки
driveне очікує. Проект одразу виконає наступний рядок коду.Робот продовжуватиме рух, доки не буде викликано
stopабо не виконається інша функція руху трансмісії.isDoneтаisMovingне використовуються зdrive, оскількиdriveне має цільової відстані.
Приклад
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Поведінка очікування та поведінка без очікування#
Деякі функції переміщення в C++ чекають завершення дії, перш ніж проект перейде до наступного рядка коду. Інші функції запускають дію та дозволяють наступному рядку виконуватися одразу.
Очікування – Проєкт очікує завершення функції.
Без очікування – Проєкт запускає функцію та одразу переходить до наступного рядка.
Деякі функції містять параметр, такий як waitForCompletion , щоб вибрати таку поведінку. Для цих функцій значення true зазвичай змушує проект чекати, тоді як false дозволяє наступному рядку виконуватися одразу.
Команди в підрозділах#
Команди C++ організовані за пристроями або темами. Наприклад, команди для мозку, контролера, приводу, подій, руху, пристроїв Smart Port, потоків та логіки згруповані в окремі підрозділи.