Structs e Classes
Um struct agrupa valores relacionados sob um tipo nomeado, com seus membros acessíveis diretamente pelo nome.
main.cpp
Teste você mesmo →#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 e constructors
class é idêntica a struct em todos os aspectos exceto um: os membros de um struct são public por padrão, os de uma class são private por padrão. Um constructor é uma function membro especial, nomeada igual à class, que roda automaticamente sempre que uma instância é criada — é o lugar natural para configurar o estado inicial de um novo object.
main.cpp
Teste você mesmo →#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
A seguir: constructors e RAII — a única ideia que substitui um coletor de lixo no C++ idiomático.
Practice exercise
Defina um struct Book com os fields title (string) e price (double). Crie um Book com title "Dune" e price 15.0, depois imprima "<title> costs <price>".