C++#
Referenční příručka k C++ API pro VEX IQ (2. generace) vysvětluje třídy, objekty, konstruktory, členské funkce a proměnné používané v projektech VEXcode IQ v jazyce C++.
Tuto referenci použijte, pokud chcete pochopit, jak se zařízení nebo funkce vytváří, zkontrolovat, kterou signaturu funkce použít, nebo porovnat související členské funkce ve třídě.
Příkazy C++ se používají v projektech VEXcode IQ C++. Informace o rozhraní C++ API mohou také podporovat projekty napsané v jazyce Visual Studio Code s rozšířením VEX Visual Studio Code.
Jak číst stránku třídy C++#
Stránka třídy C++ obvykle dodržuje toto pořadí:
Úvod – Vysvětluje, co daná třída představuje a kdy je užitečná.
Odvozené třídy – Vypíše všechny třídy, které jsou založeny na této třídě, pokud jsou k dispozici.
Konstruktor třídy nebo konstruktory – Zobrazuje syntaxi použitou k vytvoření objektu z dané třídy.
Destruktor tříd – Zobrazuje syntaxi použitou ke zničení objektu a uvolnění jeho zdrojů, pokud je to relevantní.
Parametry – Vysvětluje parametry konstruktoru použité při vytváření objektu.
Příklad – Ukazuje, jak vytvořit objekt v kódu.
Členské funkce – Vypíše funkce, které patří do třídy, často seskupené podle účelu.
Položky funkcí – Vysvětluje každou členskou funkci, včetně dostupných funkcí, parametrů, návratových hodnot, poznámek a příkladů.
Ne každá stránka má všechny sekce. Například některé stránky neobsahují odvozené třídy a některé funkce nemají parametry ani návratové hodnoty.
Běžné prvky C++ API#
Živel |
Co to znamená |
|---|---|
Třída |
Typ C++ pro zařízení nebo funkci, například |
Objekt |
Pojmenovaná instance vytvořená z třídy, například |
Konstruktor |
Kód použitý k vytvoření objektu z třídy. |
Členská funkce |
Příkaz volaný na objektu, například |
Dostupná funkce |
Jeden přesný podpis funkce, který lze použít pro členskou funkci. Některé členské funkce mají k dispozici více než jednu funkci. |
Parametr |
Hodnota předaná konstruktoru nebo funkci pro řízení její činnosti. |
Návratová hodnota |
Hodnota, kterou funkce vrací, například |
Základní slovní zásoba C++#
Období |
Co to znamená |
|---|---|
Proměnná |
Název, který ukládá hodnotu, například |
Typ |
Typ dat, která něco ukládá, například |
Řetězec |
Text v uvozovkách, například |
int |
Kladný nebo záporný typ celého čísla, například |
dvojnásobek |
Číselný typ, který může obsahovat desetinné číslo, například |
bool |
Hodnota, která je buď |
Argument |
Hodnota předaná členské funkci nebo volání funkce, například |
Konstruktory a objekty#
Před použitím členských funkcí z mnoha tříd C++ musí existovat objekt. Konstruktor ukazuje, jak tento objekt vytvořit.
Například objekt zařízení lze vytvořit tak, že konstruktoru poskytnete potřebné informace o portu nebo konfiguraci:
motor Motor1 = motor(PORT1, false);
Po vytvoření objektu lze volat jeho členské funkce:
Motor1.spin(forward);
Ve VEXcode je konfigurace zařízení často generována automaticky pomocí nabídky Device Menu. Ve Visual Studio Code s rozšířením VEX může být nutné konstruktory psát ručně.
Výběr správné dostupné funkce#
Některé členské funkce mají k dispozici více než jednu funkci. Každá funkce používá jinou sadu parametrů, proto vyberte tu, která odpovídá hodnotám, které váš projekt potřebuje poskytnout.
Například funkce hnacího ústrojí může mít jednu verzi, která používá aktuální rychlost, a druhou verzi, která umožňuje projektu zvolit rychlost:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Obě funkce volají drive, ale druhá funkce poskytuje větší kontrolu, protože zahrnuje parametry rychlosti.
Příklad zadání funkce#
řídit#
drive pohybuje robotem vpřed nebo vzad navždy. Robot se bude pohybovat, dokud nedostane další akci, například otočení nebo zastavení.
Dostupné funkce
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Směr pohybu robota: |
|
|
Rychlost, s níž se má robot pohybovat, od 0 % do 100 % při použití |
|
|
Jednotka rychlosti: |
Návratová hodnota
Tato funkce nevrací hodnotu.
Poznámky
drivenečeká. Projekt ihned spustí další řádek kódu.Robot se bude pohybovat dál, dokud nebude zavolána funkce
stopnebo dokud nebude spuštěna jiná funkce pohybu hnacího ústrojí.isDoneaisMovingse nepoužívají sdrive, protožedrivenemá cílovou vzdálenost.
Příklad
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Chování při čekání a nečekání#
Některé funkce pro přesun v C++ čekají, až je akce dokončena, než projekt přejde na další řádek kódu. Jiné funkce akci spustí a umožní okamžité spuštění dalšího řádku.
Čekání – Projekt čeká na dokončení funkce.
Nečekající – Projekt spustí funkci a okamžitě pokračuje na další řádek.
Některé funkce obsahují parametr, například waitForCompletion pro volbu tohoto chování. U těchto funkcí obvykle true způsobí, že projekt čeká, zatímco false umožní okamžité spuštění dalšího řádku.
Příkazy v podsekcích#
Příkazy C++ jsou uspořádány podle zařízení nebo tématu. Například příkazy pro hnací ústrojí, pohyb, mozek, ovladač, zařízení Smart Port, inerciální senzor, konzoli a logiku jsou seskupeny do vlastních podsekcí.