I am able to do anything with structure that I can do with classes.give the exact situation that I cant use structures and have to use only classes
Asked
Active
Viewed 110 times
4 Answers
4
That’s correct, they are strictly redundant. The reason for the existence of both classes and structs is purely historical.

Konrad Rudolph
- 530,221
- 131
- 937
- 1,214
-
"purely historical" makes it sound like things would definitely be done differently if starting afresh, which is not necessarily the case at all - I bet a lot of C++ programmers like having both available. While there's no particular functional need for both, there's some benefit in code concision, and arguably in implications that the choice might carry within a specific code base (though that's not necessarily a good practice). – Tony Delroy Apr 07 '14 at 10:06
-
@TonyD It’s hard to argue about something else’s internal state of mind. That said, yes, I do think that this would definitely be done differently today (and we can see this in other attempts at doing something similar to C++, such as D, Go and Rust). – Konrad Rudolph Apr 07 '14 at 10:21
4
There are two different constructs: struct and class, in a class, members are private by default, whereas in struct, members are public by default. That's all. They can be used either way according to convenience.

Dr. Debasish Jana
- 6,980
- 4
- 30
- 69
-
There's also nasty compiler mode where it moans and groans if you forward declare a class and it turns out to be a struct. Not all compiler do it though. – berkus Apr 07 '14 at 09:39
-
Not just "members are private" - bases too. @berkus: which is just one of the reasons for client code not to forward declare library content... the library should provide a forward declaration header if useful (e.g. `
`) – Tony Delroy Apr 07 '14 at 09:50 -
@TonyD It also works the same if you forward declare a class in YOUR OWN library. Bases access is specified after the colon, default one would differ, but you can override. – berkus Apr 07 '14 at 11:49
2
In Short:
only difference between class
and struct
in c++ is that structs
have default public
members and bases and classes have default private
members and bases.
Both can use inheritance

EmptyData
- 2,386
- 2
- 26
- 42
1
There is no such case. Structures are classes where members are public by default.

user2672165
- 2,986
- 19
- 27