AnyCompiler

Structs y Classes

Un struct agrupa valores relacionados bajo un tipo con nombre, con sus miembros accesibles directamente por nombre.

#include <iostream>
#include <string>
using namespace std;

struct Person {
    string name;
    int age;
};

int main() {
    Person alice;
    alice.name = "Alice";
    alice.age = 30;
    cout << alice.name << " is " << alice.age << " years old" << endl;
    return 0;
}
Output
Alice is 30 years old

class y constructors

class es idéntica a struct en todo aspecto excepto uno: los miembros de un struct son public por defecto, los de una class son private por defecto. Un constructor es una función miembro especial, nombrada igual que la class, que se ejecuta automáticamente cada vez que se crea una instancia — es el lugar natural para establecer el estado inicial de un nuevo object.

#include <iostream>
#include <string>
using namespace std;

class Person {
public:
    string name;
    int age;

    Person(string n, int a) {
        name = n;
        age = a;
    }
};

int main() {
    Person bob("Bob", 25);
    cout << bob.name << " is " << bob.age << " years old" << endl;
    return 0;
}
Output
Bob is 25 years old

Siguiente: constructors y RAII — la idea única que reemplaza a un recolector de basura en C++ idiomático.

Practice exercise

Define un struct Book con los fields title (string) y price (double). Crea un Book con title "Dune" y price 15.0, luego imprime "<title> costs <price>".