Cambo Freelance
HomeServicesArticlesTutorialsTeamCoursesContact
Cambo Freelance

Professional freelance team from Cambodia delivering technology-driven solutions with cultural insight and modern expertise.

Send us a message

Ready to start your project? Get in touch with our team.

Contact Us

Services

  • Web & Mobile Development Services
  • Graphic Design & Branding Services

Useful Links

  • Home
  • Services
  • Learning
  • About Us
  • Contact
  • Pricing

© 2026 Cambo Freelance. រក្សាសិទ្ធិទាំងអស់។

TelegramFacebookLinkedInEmail
HomeTutorialsC++C++ Structures
⚡C++ Tutorials

50 lessons

Beginner(21)1C++ Introduction2C++ Getting Started3C++ Syntax4C++ Output5C++ Comments6C++ Variables7C++ Data Types8C++ Constants9C++ User Input10C++ Operators11C++ Strings12C++ Math13C++ Booleans14C++ Conditions15C++ Switch16C++ Loops17C++ Break and Continue18C++ Arrays19C++ Functions20C++ References21C++ Pointers
Intermediate(19)22C++ Classes23C++ Objects24C++ Constructors25C++ Access Specifiers
Advanced(10)41C++ Smart Pointers42C++ Templates43C++ Lambda Functions44
⚡

C++ Tutorials

Lesson 33 of 50

All lessons
Beginner (21)1C++ Introduction2C++ Getting Started
26
C++ Encapsulation
27C++ Inheritance
28C++ Polymorphism
29C++ Abstraction
30C++ Files
31C++ Exception Handling
32C++ Namespaces
33C++ Structures
34C++ Enumerations
35C++ STL Introduction
36C++ Vectors
37C++ Maps
38C++ Sets
39C++ Queues
40C++ Stacks
C++ Move Semantics
45C++ Multithreading
46C++ Design Patterns
47C++ Memory Management
48C++17 Features
49C++20 Features
50C++ Performance Optimization
3
C++ Syntax
4C++ Output
5C++ Comments
6C++ Variables
7C++ Data Types
8C++ Constants
9C++ User Input
10C++ Operators
11C++ Strings
12C++ Math
13C++ Booleans
14C++ Conditions
15C++ Switch
16C++ Loops
17C++ Break and Continue
18C++ Arrays
19C++ Functions
20C++ References
21C++ Pointers
Intermediate (19)22C++ Classes23C++ Objects24C++ Constructors25C++ Access Specifiers26C++ Encapsulation27C++ Inheritance28C++ Polymorphism29C++ Abstraction30C++ Files31C++ Exception Handling32C++ Namespaces33C++ Structures34C++ Enumerations35C++ STL Introduction36C++ Vectors37C++ Maps38C++ Sets39C++ Queues40C++ Stacks
Advanced (10)41C++ Smart Pointers42C++ Templates43C++ Lambda Functions44C++ Move Semantics45C++ Multithreading46C++ Design Patterns47C++ Memory Management48C++17 Features49C++20 Features50C++ Performance Optimization
⚡C++IntermediateLesson 33 of 50CamboFreelanceJune 19, 2026

C++ Structures

Learn C++ structures (struct): group related data, compare struct vs class, and build arrays of structs for real-world data.


Tutorials › C++ › Structures
Intermediate7 min readLesson 33 of 50

What is a struct?

A struct is like a class but with public as the default access specifier. Structs are ideal for plain data containers without complex behavior.

#include <iostream>
using namespace std;

struct Point {
    double x;
    double y;

    double distanceTo(const Point& other) {
        double dx = x - other.x;
        double dy = y - other.y;
        return sqrt(dx*dx + dy*dy);
    }
};

int main() {
    Point p1 = {0.0, 0.0};
    Point p2 = {3.0, 4.0};
    cout << "Distance: " << p1.distanceTo(p2) << endl;   // 5
    return 0;
}

Output:

Distance: 5

struct vs class

Featurestructclass
Default accesspublicprivate
Default inheritancepublicprivate
Can have methodsYesYes
Best forSimple data bundles (POD)Complex OOP with encapsulation

Array of Structs

struct Student {
    string name;
    int    score;
};

Student students[3] = {
    {"Alice", 95},
    {"Bob",   82},
    {"Carol", 78}
};

for (const Student& s : students) {
    cout << s.name << ": " << s.score << endl;
}

Exercise

Create a Book struct with title, author, year, and price. Declare an array of 3 books and print the title of the most expensive one.

Show Solution
#include <iostream>
using namespace std;

struct Book {
    string title, author;
    int year;
    double price;
};

int main() {
    Book books[] = {
        {"C++ Primer", "Lippman", 2012, 49.99},
        {"Effective C++", "Meyers", 2005, 39.99},
        {"The C++ Programming Language", "Stroustrup", 2013, 55.00}
    };
    Book& mostExpensive = books[0];
    for (Book& b : books)
        if (b.price > mostExpensive.price) mostExpensive = b;
    cout << "Most expensive: " << mostExpensive.title << endl;
    return 0;
}

Quiz

  1. What is the default access specifier for struct members?

    • A) private
    • B) protected
    • C) public
    • D) internal
    Answer

    C) public

Summary

  • Structs group related data; members are public by default.
  • Structs can have constructors and methods like classes.
  • Use structs for simple data bundles; classes for complex OOP.
← Previous: Namespaces Next: Enumerations →
c++structuresstructintermediate
PreviousLesson 32: C++ NamespacesNextLesson 34: C++ Enumerations
Back to All Tutorials