EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

C++ Struct

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » C++ Struct

C++ Struct

Introduction to C++ Struct

A struct in C++ is a data structure that allows forming a new type of datatype by combining multiple different types of primitive data types available in C++. We can form a new kind of datatype in addition to existing primitives by combining them as per the application requirement. This is known as a structure in C++. As arrays allow us to store the same type of data types, the structure allows us to a group and combine the different types of data types. The structure makes it easy to map real-life entities or data models with the storage and handling in C++.

Syntax

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

struct name_of_structure {
// Multiple variables of different data types
}

The syntax of structure in C++ is very easy to understand and use. It starts with the keyword “struct” followed by the name of a structure. In the curly braces, we can add multiple variables with different data types. The name of the structure now can be considered as a new type of data type which is available for use. How to use structure including accessing of data or each member variable in structure, etc. we will see in the examples.

How does C++ struct function?

Let’s understand this by looking at how a structure is stored in memory internally. Just like memory is allocated for primitives such as char, int in C++ with their default size, in the same way, it is allocated for the structure as well. As the structure is a combination of different member variables, the memory allocated will be the sum of memory required for each variable. Now we have memory allocated in this way and a reference to this memory will be returned when we create a new member of a structure type. Then the individual member can be accessed by using (.) dot operator between structure name and a member name, which will eventually point to a member variable.

Examples of C++ Struct

Below are the examples:

Example #1

Defining structure and accessing member variables

Code:

#include <iostream>
using namespace std;
// Declaring struct of type Car
struct Car {
string brand ; // Member variables. . .
string model ;
string color ;
int seats;
};
int main()
{
Car c1; // Line 1 Creating variable of type Car
c1.brand = "Honda"; // Line 2 Setting up the Member variable values. . .
c1.model = "City";
c1.color = "White";
c1.seats = 5;
cout << " Car details are as below: \n " << endl;
cout << " brand: " << c1.brand << endl; // Line 3 Accessing the memeber variables
cout << " model: " << c1.model << endl; // using . (Dot) operator
cout << " color: " << c1.color << endl;
cout << " Seat Capacity: " << c1.seats << endl;
return 0;
}

Output:

C++ Struct -Example 1

Here, we have defined a struct named Car with member variables like brand, model, etc. In this way, struct makes it easy to define an entity with multiple parameters into a single datatype. The new variable of type Car is defined inline 1, then the field members are set at line 2 and finally, they are accessed at line 3. Note the use of dot operator over here.

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,837 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Example #2

Defining the struct variable at the time of definition

Code:

#include <iostream>
using namespace std;
// Declaring struct of type Car
struct Car {
string brand ; // Member variables. . .
string model ;
string color ;
int seats;
} c1; // Declare variable at the time of definition
int main()
{
// Car c1; // Creating variable of type Car
c1.brand = "Honda"; // Setting up the Member variable values. . .
c1.model = "City";
c1.color = "White";
c1.seats = 5;
cout << " Car details are as below: \n " << endl;
cout << " brand: " << c1.brand << endl; // Accessing the memeber variables
cout << " model: " << c1.model << endl; // using . (Dot) operator
cout << " color: " << c1.color << endl;
cout << " Seat Capacity: " << c1.seats << endl;
return 0;
}

Output:

C++ Struct -Example 2

Here, the variable of type Car is declared at the time of definition of structure. This is another way of declaring a struct variable. This type of declaration can be used if we already know the struct member or we want to use it globally.

Example #3

Initialization using curly braces

Code:

#include <iostream>
using namespace std;
// Declaring struct of type Car
struct Car {
string brand ; // Member variables. . .
string model ;
string color ;
int seats;
};
int main()
{
Car c1 = { "Honda", "Amaze", "Red", 5}; // Line 1
cout << " Car details are as below: \n " << endl;
cout << " brand: " << c1.brand << endl; // Accessing the memeber variables
cout << " model: " << c1.model << endl; // using . (Dot) operator
cout << " color: " << c1.color << endl;
cout << " Seat Capacity: " << c1.seats << endl;
return 0;
}

Output:

using curly braces - 3

In the previous example, we had set the member variables by accessing them individually. Here at line 1, we have initialized them all at once at the time of declaration using curly braces.

Example #4

Using constructor and method with struct

We can also define constructor and methods instruct, below is the demonstration of it.

Code:

#include <iostream>
using namespace std;
// Declaring struct of type Car
struct Car {
string brand ; // Member variables. . .
string model ;
Car( string b, string m) {
brand = b;
model = m;
}
void displayDetails(){
cout << " brand: " << brand << endl;
cout << " model: " << model << endl;
}
};
int main()
{
Car c1 = Car("Honda", "Amaze");
cout << " Car details are as below: \n " << endl;
c1.displayDetails();
return 0;
}

Output:

Using constructor -4

Conclusion

A struct in C++ is a structure that allows defining user-defined data types using multiple primitive data types. There are multiple ways in which struct can be declared, initialized and used. In this article, we have seen most of them.

Recommended Articles

This is a guide to C++ Struct. Here we discuss the introduction, how does C++ struct function, syntax and the examples with outputs. You can also go through our other suggested articles to learn more –

  1. Stack in C++
  2. Queue in C++
  3. C++ Identifiers
  4. C++ any()

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

50+ projects

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training Course Learn More