logo

C++ - struct vs class vs union

  • struct: data members default to public.
  • class: data members default to private.
  • union: a special class type that can hold only one of its non-static data members at a time. (Similar to oneof in ProtoConf)

Google style guide suggests: "Use a struct only for passive objects that carry data; everything else is a class."

https://google.github.io/styleguide/cppguide.html#Structs_vs._Classes