C++#

La referencia de la API de C++ de VEX IQ (2.ª generación) explica las clases, los objetos, los constructores, las funciones miembro y las variables que se utilizan en los proyectos de C++ de VEXcode IQ.

Utilice esta referencia cuando desee comprender cómo se crea un dispositivo o una función, comprobar qué firma de función utilizar o comparar funciones miembro relacionadas en una clase.

Los comandos de C++ se utilizan en proyectos de VEXcode IQ C++. La información de la API de C++ también puede ser útil para proyectos escritos en Visual Studio Code con la extensión VEX para Visual Studio Code.

Cómo leer una página de clase de C++#

Una página de clase de C++ generalmente sigue este orden:

  1. Introducción - Explica qué representa la clase y cuándo es útil.

  2. Clases derivadas - Enumera las clases que se basan en esta clase, si corresponde.

  3. Constructor o constructores de clase - Muestra la sintaxis utilizada para crear un objeto a partir de la clase.

  4. Destructor de clase - Muestra la sintaxis utilizada para destruir el objeto y liberar sus recursos, si corresponde.

  5. Parámetros - Explica los parámetros del constructor que se utilizan al crear el objeto.

  6. Ejemplo - Muestra cómo crear el objeto en el código.

  7. Funciones miembro - Enumera las funciones que pertenecen a la clase, a menudo agrupadas por propósito.

  8. Entradas de funciones - Explica cada función miembro, incluyendo las funciones disponibles, los parámetros, los valores de retorno, las notas y los ejemplos.

No todas las páginas tienen todas las secciones. Por ejemplo, algunas páginas no incluyen clases derivadas y algunas funciones no tienen parámetros ni valores de retorno.

Elementos comunes de la API de C++#

Elemento

Qué significa

Clase

The C++ type for a device or feature, such as motor or drivetrain.

Objeto

A named instance created from a class, such as motor Motor1 or drivetrain myDrivetrain.

Constructor

El código utilizado para crear un objeto a partir de una clase.

Función de miembro

A command called on an object, such as myDrivetrain.drive(…).

Función disponible

Una firma de función exacta que se puede usar para una función miembro. Algunas funciones miembro tienen más de una función disponible.

Parámetro

Un valor que se pasa a un constructor o función para controlar su funcionamiento.

Valor de retorno

A value a function gives back, such as bool, int32_t, or double.

Vocabulario básico de C++#

Término

Qué significa

Variable

A name that stores a value, such as int speed = 50;.

Tipo

The kind of data something stores, such as int, double, or bool.

Cadena

Text inside quotes, such as “Hello”.

int

A positive or negative whole number type, such as 90.

doble

A number type that can include a decimal, such as 25.5.

bool

A value that is either true or false.

Argumento

A value passed into a member function or function call, such as forward in myDrivetrain.drive(forward).

Constructores y objetos#

Antes de utilizar las funciones miembro de muchas clases de C++, debe existir un objeto. El constructor muestra cómo crear ese objeto.

Por ejemplo, se puede crear un objeto de dispositivo proporcionando al constructor la información de puerto o configuración que necesita:

motor Motor1 = motor(PORT1, false);

Una vez creado el objeto, se pueden llamar sus funciones miembro:

Motor1.spin(forward);

En VEXcode, la configuración del dispositivo suele generarse automáticamente mediante el menú Dispositivo. En Visual Studio Code con la extensión VEX, puede ser necesario escribir los constructores manualmente.

Elegir la función disponible adecuada#

Algunas funciones miembro tienen más de una función disponible. Cada función utiliza un conjunto diferente de parámetros, así que elige la que coincida con los valores que tu proyecto necesita proporcionar.

Por ejemplo, una función de transmisión puede tener una versión que utilice la velocidad actual y otra versión que permita al proyecto elegir una velocidad:

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Both functions call drive, but the second function gives more control because it includes velocity parameters.

Ejemplo de entrada de función#

conducir#

drive moves the robot forward or reverse forever. The robot will continue to move until it is given another action, like turning or stopping.

Funciones disponibles

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Parámetro

Tipo

Descripción

dir

directionType

The direction the robot moves: forward or reverse.

velocity

double

The velocity to drive with from 0% to 100% when using velocityUnits::pct, from 0 to 120 rpm when using rpm, or from 0 to 720 degrees per second when using dps. If no velocity is provided, the robot drives at the current drive velocity.

units

velocityUnits

The velocity unit: velocityUnits::pct (percent), rpm (rotations per minute), or dps (degrees per second).

Valor de retorno

Esta función no devuelve ningún valor.

Notas

  • drive is non-waiting. The project will run the next line of code right away.

  • The robot will continue to move until stop is called or another drivetrain movement function runs.

  • isDone and isMoving are not used with drive because drive does not have a target distance.

Ejemplo

// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

Comportamiento de espera y comportamiento de no espera#

Algunas funciones de movimiento en C++ esperan a que finalice una acción antes de que el proyecto pase a la siguiente línea de código. Otras funciones inician una acción y permiten que la siguiente línea se ejecute de inmediato.

  • En espera - El proyecto espera hasta que la función finalice.

  • Sin espera - El proyecto inicia la función e inmediatamente continúa con la siguiente línea.

Some functions include a parameter such as waitForCompletion to choose this behavior. For those functions, true usually makes the project wait, while false lets the next line run right away.

Comandos en subsecciones#

Los comandos de C++ se organizan por dispositivo o tema. Por ejemplo, los comandos para los dispositivos de transmisión, movimiento, cerebro, controlador, puerto inteligente, sensor inercial, consola y lógica se agrupan en subsecciones propias.