C++#
A VEX IQ (1. generációs) C++ API referencia ismerteti a VEXcode C++ projektekben használt osztályokat, objektumokat, konstruktorokat, tagfüggvényeket és változókat.
Ezt a referenciát akkor használd, ha meg szeretnéd érteni, hogyan jön létre egy eszköz vagy funkció, ellenőrizni szeretnéd, hogy melyik függvényszignatúrát használd, vagy összehasonlítani szeretnéd a kapcsolódó tagfüggvényeket egy osztályon belül.
A VEXcode IQ C++ projektekben C++ parancsokat használnak. A C++ oldalak másképp vannak felépítve, mint a Blocks oldalak, mivel sok parancs egy osztályhoz tartozik. Egy oldal először elmagyarázhatja az osztályt és egy objektum létrehozásának módját, majd felsorolhatja az adott objektumon meghívható tagfüggvényeket.
Hogyan olvassunk el egy C++ osztályoldalt#
Egy C++ osztályoldal általában ezt a sorrendet követi:
Bevezetés – Elmagyarázza, hogy mit képvisel az osztály, és mikor hasznos.
Származtatott osztályok – Felsorolja az ezen az osztályon alapuló osztályokat, ha vannak ilyenek.
Osztálykonstruktor vagy konstruktorok – Megjeleníti az osztályból egy objektum létrehozásához használt szintaxist.
Osztálydestruktor – Megjeleníti az objektum megsemmisítéséhez és az erőforrásainak felszabadításához használt szintaxist, ha alkalmazható.
Paraméterek – Elmagyarázza az objektum létrehozásakor használt konstruktor paramétereket.
Példa – Bemutatja, hogyan hozható létre az objektum kódban.
Tagfüggvények – Felsorolja az osztályhoz tartozó függvényeket, gyakran cél szerint csoportosítva.
Függvénybejegyzések – Elmagyarázza az egyes tagfüggvényeket, beleértve az elérhető függvényeket, paramétereket, visszatérési értékeket, megjegyzéseket és példákat.
Nem minden oldalon található meg minden szakasz. Például egyes oldalak nem tartalmaznak származtatott osztályokat, és egyes függvényeknek nincsenek paramétereik vagy visszatérési értékeik.
Gyakori C++ API elemek#
Elem |
Mit jelent |
|---|---|
Osztály |
Egy eszköz vagy funkció C++ típusa, például |
Objektum |
Egy osztályból létrehozott elnevezett példány, például: |
Konstruktőr |
Az a kód, amely egy osztályból objektum létrehozásához használható. |
Tagfunkció |
Egy objektumon meghívott parancs, például |
Elérhető funkció |
Egyetlen pontos függvényszignatúra használható egy tagfüggvényhez. Néhány tagfüggvényhez egynél több elérhető függvény is tartozik. |
Paraméter |
Egy konstruktornak vagy függvénynek átadott érték, amely a műveletet szabályozza. |
Visszatérési érték |
Egy függvény által visszaadott érték, például |
Alapvető C++ szókincs#
Kifejezés |
Mit jelent |
|---|---|
Változó |
Egy olyan név, amely értéket tárol, például |
Típus |
Az adat típusa, amit valami tárol, például |
Húr |
Idézőjelek között lévő szöveg, például |
bels |
Pozitív vagy negatív egész szám típusú, például |
kettős |
Egy olyan számtípus, amely tartalmazhat tizedesjegyet, például |
logikai |
Egy olyan érték, amely vagy |
Érv |
Egy tagfüggvénynek vagy függvényhívásnak átadott érték, például |
Konstruktorok és objektumok#
Sok C++ osztály tagfüggvényeinek használata előtt léteznie kell egy objektumnak. A konstruktor megmutatja, hogyan hozható létre ez az objektum.
Például egy Bumper Switch objektum létrehozható úgy, hogy a konstruktornak megadjuk azt az intelligens portot, ahová az érzékelő csatlakozik:
bumper Bumper1 = bumper(PORT1);
Miután az objektum létrejött, meghívhatók a tagfüggvényei:
Bumper1.pressing();
A VEXcode-ban az eszközkonfigurációt gyakran automatikusan generálja az Eszközmenü. A VS Code-ban a konstruktorokat manuálisan kell megírni.
A megfelelő elérhető funkció kiválasztása#
Néhány tagfüggvényhez egynél több elérhető függvény is tartozik. Minden függvény más paraméterkészletet használ, ezért azt válaszd, amelyik megfelel a projekted által biztosítandó értékeknek.
Például egy hajtáslánc-függvénynek lehet egy olyan verziója, amely az aktuális sebességet használja, és egy másik verziója, amely lehetővé teszi a projekt számára a sebesség kiválasztását:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Mindkét verzió driveértéket használja, de a második verzió nagyobb kontrollt biztosít, mivel sebességparamétereket is tartalmaz.
Példa függvénybejegyzés#
hajtás#
drive A robotot a végtelenségig előre vagy hátra mozgatja. A robot addig fog mozogni, amíg egy másik műveletet nem kap, például fordulást vagy megállást.
Elérhető funkciók
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
A robot mozgásiránya: |
|
|
A haladási sebesség 0%-tól 100%-ig |
|
|
A sebesség mértékegysége: |
Visszatérési érték
Ez a függvény nem ad vissza értéket.
Megjegyzések
driveis non-waiting. The project will run the next line of code right away.A robot addig fog mozogni, amíg
stopparancsot meg nem hívják, vagy egy másik hajtáslánc-mozgási függvény le nem fut.isDoneésisMovingnem használatosakdrive-tel, mertdrivenincs céltávolsága.
Példa
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Várakozás és nem várakozás viselkedése#
Néhány C++ mozgásfüggvény megvárja, amíg egy művelet befejeződik, mielőtt a projekt a következő kódsorra lépne. Más függvények elindítanak egy műveletet, és azonnal engedélyezik a következő sor futtatását.
Várakozás – A projekt megvárja, amíg a függvény befejeződik.
Nem várakozó - A projekt elindítja a függvényt, és azonnal folytatja a következő sorban.
Néhány függvény egy paramétert tartalmaz, például waitForCompletion értéket, hogy kiválassza ezt a viselkedést. Ezeknél a függvényeknél true általában várakozásra készteti a projektet, míg false azonnal lehetővé teszi a következő sor futtatását.
Parancsok az alszakaszokban#
A C++ parancsok eszköz vagy téma szerint vannak rendszerezve. Például az Agy, Vezérlő, Hajtáslánc, Események, Mozgás, Smart Port eszközök, Szálak és Logika parancsai külön alfejezetekbe vannak csoportosítva.