User-defined data types allow programmers to create their own data types, which can be used to represent complex objects or data structures. One of the most common user-defined data types in C++ is the structure, which allows you to group multiple variables of different types into a single object. Here’s an overview of how to define and access structure members in C++:
1. Definition: A structure is defined using the `struct` keyword, followed by the name of the structure and a pair of braces that contain the members of the structure. For example:
struct Person { string name; int age; };
In this example, a structure `Person` is defined, which contains two members: a string `name` and an integer `age`.
2. Initialization: A structure variable can be initialized using the curly braces syntax. For example:
Person p = {"John Smith", 30};
In this example, a structure variable `p` of type `Person` is declared and initialized with the values “John Smith” and 30 for the `name` and `age` members, respectively.
3. Accessing members: The members of a structure can be accessed using the dot (.) operator. For example:
Person p = {"John Smith", 30}; cout << p.name << endl; // output: John Smith cout << p.age << endl; // output: 30
In this example, the `name` and `age` members of the structure variable `p` are accessed using the dot operator, and their values are outputted using `cout`.
4. Nested structures: Structures can also be nested inside other structures, allowing you to create complex data structures. For example:
struct Address { string street; string city; string state; }; struct Person { string name; int age; Address address; }; Person p = {"John Smith", 30, {"123 Main St", "Anytown", "CA"}}; cout << p.address.street << endl; // output: 123 Main St
In this example, a structure `Address` is defined, which contains members for a street, city, and state. A structure `Person` is also defined, which contains members for a name, age, and address. A structure variable `p` is declared and initialized with values for all the members, including an `Address` structure nested inside the `Person` structure. The street member of the nested `Address` structure is accessed using the dot operator and outputted using `cout`.
By using structures, you can create complex data structures that can be used to represent real-world objects or data types. Structures can also be used in conjunction with other C++ concepts like pointers and arrays to create even more complex data structures.