C++ Clases y objetos
C++ añade programación orientada a objetos sobre la base del lenguaje C; C++ admite programación orientada a objetos. La clase es una característica central de C++ y a menudo se denomina tipo definido por el usuario.
La clase se utiliza para especificar la forma de los objetos; es un tipo de datos definido por el usuario, una combinación que encapsula datos y funciones. Los datos en una clase se llaman variables miembro, y las funciones se llaman funciones miembro. La clase puede considerarse como una plantilla que se puede usar para crear múltiples objetos con las mismas propiedades y comportamientos.
Definición de clases en C++
Para definir una clase se necesita la palabra claveclassluego se especifica el nombre de la clase, y el cuerpo de la clase está encerrado entre un par de llaves; el cuerpo contiene las variables miembro y las funciones miembro de la clase.
Definir una clase es, en esencia, definir un plano de un tipo de datos; define qué incluyen los objetos de la clase y qué operaciones se pueden realizar sobre ese objeto.

En el siguiente ejemplo usamos la palabra claveclasspara definir el tipo de datos Box, que contiene tres variables miembro: length, breadth y height:
La palabra clavepublicdetermina los atributos de acceso de los miembros de la clase. Dentro del ámbito del objeto de la clase, los miembros públicos son accesibles desde fuera de la clase. También puede especificar los miembros de la clase comoprivateoprotected, esto lo explicaremos más adelante.
Definir objetos de C++
La clase proporciona el plano de los objetos, por lo que básicamente los objetos se crean según la clase. Declarar un objeto de una clase es como declarar una variable de un tipo básico. La siguiente declaración define dos objetos de la clase Box:
Los objetos Box1 y Box2 tienen cada uno sus propios miembros de datos.
Acceso a miembros de datos
Los miembros de datos públicos de un objeto de clase pueden utilizar el operador de acceso directo a miembros.para acceder.

Para comprender mejor estos conceptos, probemos el siguiente ejemplo:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Box1 的体积:210 Box2 的体积:1560 Box3 的体积:1536
Cabe señalar que los miembros privados y protegidos no se pueden acceder directamente usando el operador de acceso directo a miembros (.). Aprenderemos cómo acceder a los miembros privados y protegidos en tutoriales posteriores.
Explicación detallada de clases y objetos
Hasta ahora, hemos adquirido una comprensión básica de las clases y objetos de C++. La siguiente lista incluye otros conceptos relacionados con las clases y objetos de C++; puedes hacer clic en los enlaces correspondientes para aprender.
| Concepto | Descripción |
|---|---|
| Funciones miembro de clase | Las funciones miembro de clase son aquellas cuya definición y prototipo se escriben dentro de la definición de la clase, igual que otras variables en la definición de la clase. |
| Modificadores de acceso a clase | Los miembros de la clase pueden definirse como public, private o protected. De forma predeterminada se definen como private. |
| Constructores y destructores | El constructor de una clase es una función especial que se invoca al crear un nuevo objeto. El destructor de una clase también es una función especial que se invoca al eliminar el objeto creado. |
| Constructor de copia en C++ | El constructor de copia es un tipo especial de constructor que, al crear un objeto, utiliza un objeto previamente creado de la misma clase para inicializar el objeto recién creado. |
| Funciones amigas en C++ | Función amigapuede acceder a los miembros private y protected de la clase. |
| Funciones inline en C++ | Con las funciones inline, el compilador intenta expandir el código del cuerpo de la función en el lugar donde se llama a la función. |
| El puntero this en C++ | Cada objeto tiene un puntero especialthisque apunta al propio objeto. |
| Punteros a clases en C++ | El puntero a una clase es similar al puntero a una estructura. De hecho, una clase puede considerarse como una estructura con funciones. |
| Miembros estáticos de clase en C++ | Tanto los miembros de datos como los miembros de función de una clase pueden declararse como estáticos. |