This question already has an answer here:
-
When should you use a class vs a struct in C++?
24 answers
Is there ever an advantage of declaring a struct in C++? Why shouldn't I just make a class consisting only of data members(i.e. no methods)?
Thanks,
When you have a POD type where everything is public is saves a line...
struct Color {
int r;
int g;
int b;
};
vs
class Color {
public:
int r;
int g;
int b;
};
And it's also common practice for objects which are just dumb containers of things. Dumb meaning no constructors, operators, methods.
My favorite reason is inheritance. consider this code:
class MyClass : public Base1, public virtual Base2 {
public:
void fun1() override;
private:
int m1;
};
Now consider this very example with a struct:
struct MyClass : Base1, virtual Base2 {
void fun1() override;
private:
int m1;
};
Some say C++ is too verbose, but when checking their code, it look much more like the first example. I find struct
much easier to read than class
. In my project I use struct everywhere.
The question you should ask is "Why should I even consider using classes in C++?", because IMO, struct are the same but less verbose.