Grouping related data
When a value is more than a single number — a user with a name, email and age — you want to bundle the fields together under one name. C++ provides objects (or structs / records / dictionaries depending on the language) to do exactly that.
```cpp
class User {
public:
std::string name;
int age;
User(std::string n, int a) : name(n), age(a) {}
std::string greet() { return "Hi " + name; }
};User u("Aman", 20); std::cout << u.greet(); ```
Methods
Many languages let an object carry not only data but also functions ("methods") that operate on that data. This style is called object-oriented programming and is the dominant way to organise large programs.
When to make a new type
If you find yourself passing three or four related values into every function — say x, y and z of a 3-D point — that is a clear signal to introduce a new object type that holds them together. The code becomes shorter, safer and easier to extend.