C++#
„VEX IQ“ (1-osios kartos) C++ API nuorodoje paaiškinamos klasės, objektai, konstruktoriai, narių funkcijos ir kintamieji, naudojami „VEXcode C++“ projektuose.
Šią nuorodą naudokite, kai norite suprasti, kaip sukuriamas įrenginys ar funkcija, patikrinti, kurį funkcijos parašą naudoti, arba palyginti susijusias klasės narių funkcijas.
C++ komandos naudojamos VEXcode IQ C++ projektuose. C++ puslapiai yra organizuoti kitaip nei Blocks puslapiai, nes daugelis komandų priklauso klasei. Puslapyje pirmiausia gali būti paaiškinta klasė ir kaip sukurti objektą, o tada išvardytos narių funkcijos, kurias galima iškviesti tam objektui.
Kaip skaityti C++ klasės puslapį#
C++ klasės puslapis paprastai kuriamas tokia tvarka:
Įvadas – Paaiškina, ką reiškia klasė ir kada ji naudinga.
Išvestinės klasės – Pateikia visas klases, kurios yra pagrįstos šia klase, jei taikoma.
Klasės konstruktorius arba konstruktoriai – rodo sintaksę, naudojamą objektui sukurti iš klasės.
Klasės naikintojas – Parodo sintaksę, naudojamą objektui sunaikinti ir jo ištekliams išlaisvinti, jei taikoma.
Parametrai – Paaiškina konstruktoriaus parametrus, naudojamus kuriant objektą.
Pavyzdys – Parodo, kaip sukurti objektą kode.
Narių funkcijos – Išvardija klases, priklausančias funkcijoms, dažnai sugrupuotoms pagal paskirtį.
Funkcijų įrašai – Paaiškina kiekvieną nario funkciją, įskaitant galimas funkcijas, parametrus, grąžinamas reikšmes, pastabas ir pavyzdžius.
Ne kiekviename puslapyje yra visi skyriai. Pavyzdžiui, kai kuriuose puslapiuose nėra išvestinių klasių, o kai kurios funkcijos neturi parametrų ar grąžinamų reikšmių.
Įprasti C++ API elementai#
Elementas |
Ką tai reiškia |
|---|---|
Klasė |
C++ tipas įrenginiui arba funkcijai, pvz., |
Objektas |
Iš klasės sukurtas pavadintas egzempliorius, pvz., |
Konstruktorius |
Kodas, naudojamas objektui sukurti iš klasės. |
Nario funkcija |
Objektui iškviesta komanda, pvz., |
Galima funkcija |
Vienas tikslus funkcijos parašas, kurį galima naudoti nario funkcijai. Kai kurios nario funkcijos turi daugiau nei vieną prieinamą funkciją. |
Parametras |
Konstruktoriui arba funkcijai perduodama reikšmė, skirta valdyti jo veiksmus. |
Grąžinimo vertė |
Funkcijos grąžinama reikšmė, pvz. |
Pagrindinis C++ žodynas#
Terminas |
Ką tai reiškia |
|---|---|
Kintamasis |
Pavadinimas, kuriame saugoma reikšmė, pvz., |
Tipas |
Duomenų, kuriuos kažkas saugo, tipas, pvz. |
Eilutė |
Tekstas kabutėse, pvz., |
vid. |
Teigiamo arba neigiamo sveikojo skaičiaus tipas, pvz., |
dvigubas |
Skaičiaus tipas, kuriame gali būti dešimtainė trupmena, pvz. |
bool |
Reikšmė, kuri yra |
Argumentas |
Reikšmė, perduota nario funkcijai arba funkcijos iškvietimui, pvz. |
Konstruktoriai ir objektai#
Prieš naudojant daugelio C++ klasių narines funkcijas, turi egzistuoti objektas. Konstruktorius parodo, kaip sukurti tą objektą.
Pavyzdžiui, „Bumper Switch“ objektą galima sukurti konstruktoriui nurodant „Smart Port“, prie kurio prijungtas jutiklis:
bumper Bumper1 = bumper(PORT1);
Sukūrus objektą, galima iškviesti jo narių funkcijas:
Bumper1.pressing();
„VEXcode“ įrenginyje konfigūracija dažnai generuojama automatiškai naudojant įrenginio meniu. „VS Code“ konstruktorius gali tekti rašyti rankiniu būdu.
Tinkamos galimos funkcijos pasirinkimas#
Kai kurios narinės funkcijos turi daugiau nei vieną prieinamą funkciją. Kiekviena funkcija naudoja skirtingą parametrų rinkinį, todėl pasirinkite tą, kuri atitinka jūsų projekto pateiktas reikšmes.
Pavyzdžiui, pavaros funkcija gali turėti vieną versiją, kuri naudoja dabartinį greitį, o kitą versiją, kuri leidžia projektui pasirinkti greitį:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Abi versijos vadina drive, bet antroji versija suteikia daugiau valdymo galimybių, nes joje yra greičio parametrai.
Funkcijos įrašo pavyzdys#
vairuoti#
drive robotą judina pirmyn arba atgal amžinai. Robotas judės tol, kol jam bus duotas kitas veiksmas, pvz., pasisukti arba sustoti.
Galimos funkcijos
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Roboto judėjimo kryptis: |
|
|
Važiavimo greitis nuo 0 % iki 100 %, kai naudojama |
|
|
Greičio vienetas: |
Grąžinimo vertė
Ši funkcija negrąžina reikšmės.
Pastabos
drivenelaukia. Projektas iš karto paleis kitą kodo eilutę.Robotas judės tol, kol bus iškviesta
stopkomanda arba bus paleista kita pavaros judėjimo funkcija.isDoneirisMovingnenaudojami sudrive, nesdriveneturi tikslinio atstumo.
Pavyzdys
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Laukimo ir nelaukimo elgesys#
Kai kurios C++ judėjimo funkcijos palaukia, kol veiksmas bus baigtas, prieš pereinant prie kitos kodo eilutės. Kitos funkcijos pradeda veiksmą ir leidžia kitai eilutei veikti iš karto.
Laukiama – Projektas laukia, kol funkcija baigsis.
Nelaukiant – projektas pradeda funkciją ir iš karto tęsia darbą su kita eilute.
Kai kurios funkcijos turi parametrą, pvz. waitForCompletion , kad pasirinktų šį elgesį. Šioms funkcijoms true paprastai priverčia projektą palaukti, o false leidžia iš karto vykdyti kitą eilutę.
Komandos poskyriuose#
C++ komandos yra suskirstytos pagal įrenginį arba temą. Pavyzdžiui, komandos, skirtos smegenims, valdikliui, pavarai, įvykiams, judėjimui, išmaniojo prievado įrenginiams, gijoms ir logikai, yra sugrupuotos į atskirus poskyrius.