Skip to main content
Brave Programmer Logo

BraveProgrammer

BraveProgrammer

HomeProjectsBlogsCoursesLessonsAbout

Site footer

BraveProgrammer

Free coding courses, practical tutorials, and real projects from BraveProgrammer. Learn web development with React, Next.js, and TypeScript.

Navigation

  • Home
  • Projects
  • Blogs
  • Courses

Resources

  • About
  • Lessons

© 2026 BraveProgrammer. All rights reserved.

  1. Courses
  2. /
  3. C++ Course

Lesson 9 of 45 · C++

Lesson 17: Structs and Enums

Duration: 9 min

Structs and Enums\n\nstruct and class are both user‑defined types; the only difference is default member access (struct defaults to public, class defaults to private). enum provides named integer constants, while enum class (scoped enum) offers strong typing and no implicit conversions.\n\n---\n\n## Example: Struct vs Class and Scoped Enum\ncpp\nstruct Point {\n double x; // public by default\n double y;\n};\n\nclass Circle {\n double radius; // private by default\npublic:\n explicit Circle(double r) : radius(r) {}\n double area() const { return 3.14159 * radius * radius; }\n};\n\nenum Color { Red, Green, Blue }; // old style, implicit conversion to int\n\nenum class Direction { North, South, East, West }; // scoped, no implicit int conversion\n\n\nenum class prevents accidental mixing of unrelated enum values and helps catch bugs at compile time.\n\n> Tip: Prefer enum class for new code unless you need backward compatibility with C APIs.\n\n---\n\n

Note

Structs are ideal for passive data aggregates; classes for objects with invariants and behaviour.

Previous: Lesson 16: Smart Pointers – unique_ptr, shared_ptr, weak_ptrNext: Lesson 18: Classes and Objects