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,
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.
