Lesson 9 of 45 · C++
Lesson 17: Structs and Enums
Duration: 9 min
Lesson 9 of 45 · C++
Duration: 9 min
struct 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