C++ Structures (struct)
C++ Structures
Structures (also called structs) are a way to group several related variables into one place.
Each variable in the structure is known as a member of the structure.
Unlike an array, a structure can contain many
different data types: int
, string
, bool
, etc.
Create a Structure
To create a structure, use the struct
keyword and declare each of its members inside curly braces.
After the declaration, specify the name of the structure variable (myStructure in the example below):
struct { // Structure declaration
int myNum; // Member (int
variable)
string myString; // Member (string variable)
}
myStructure; // Structure variable
Access Structure Members
To access members of a structure, use the dot syntax (.
):
Example
Assign data to members of a structure and print it:
// Create a structure variable called myStructure
struct {
int myNum;
string myString;
} myStructure;
// Assign values to members of myStructure
myStructure.myNum = 1;
myStructure.myString = "Hello World!";
// Print members of myStructure
cout << myStructure.myNum << "\n";
cout << myStructure.myString << "\n";
Try it Yourself »
One Structure in Multiple Variables
You can use a comma (,
) to use one structure in many variables:
struct {
int myNum;
string myString;
} myStruct1, myStruct2, myStruct3; // Multiple structure variables separated with commas
This example shows how to use a structure in two different variables:
Example
Use one structure to represent two cars:
struct {
string brand;
string model;
int year;
} myCar1, myCar2; // We can add variables by separating them with a comma here
// Put data into the first structure
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;
// Put data into the second structure
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;
// Print the structure members
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "\n";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "\n";
Try it Yourself »
Named Structures
By giving a name to the structure, you can treat it as a data type. This means that you can create variables with this structure anywhere in the program at any time.
To create a named structure, put the name of the structure right after the struct
keyword:
struct car { // This structure is now named "car"
string
brand;
string model;
int year;
};
To declare a variable that uses the structure, use the name of the structure as the data type of the variable:
car myCar1;
Now the structure can be reused anywhere by using car
as the data type:
Example
Use one structure to represent two cars:
// Declare a structure named "car"
struct car {
string brand;
string model;
int year;
};
int main() {
// Create a car structure and store it in myCar1;
car myCar1;
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;
// Create another car structure and store it in myCar2;
car myCar2;
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;
// Print the structure members
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "\n";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "\n";
return 0;
}
Try it Yourself »
Challenge Task
Create a structure to represent a student. It should have the following members:
name
(string
)age
(int
)grade
(char
)
Then:
- Create one variable of the structure.
- Assign values to its members.
- Print the values to the screen.
Expected Output
Name: Liam
Age: 35
Grade: A
Solution
#include <iostream>
#include <string>
using namespace std;
struct student {
string name;
int age;
char grade;
};
int main() {
student s1;
s1.name = "John";
s1.age = 35;
s1.grade = 'A';
cout << "Name: " << s1.name << "\n";
cout << "Age: " << s1.age << "\n";
cout << "Grade: " << s1.grade << "\n";
return 0;
}
Try it Yourself »