|
C++ Standard has an explanation for the difference. The first difference is described in 11.2 [size=11.6667px]Accessibility of base classes and base class members
In the absence of an access-specifier for a base class, public is assumed when the derived class is defined with [size=11.6667px]the class-key struct and private is assumed when the class is defined with the class-key class.
The second difference is described in 11.1 Access specifiers. The explanation is in comments in the example code.
The following code shows this difference.
#include <iostream>using namespace std;struct SPerson { void hello() const { cout << "hello\n"; }};class CPerson { void hello() const { cout << "hello\n"; }};class Base { public: void hello() const { cout << "hello\n"; }};struct SDerived: Base {};class CDerived: Base {};int main(int argc, const char *argv[]) { SPerson sp; sp.hello(); CPerson cp; cp.hello(); // compile error SDerived sd; sd.hello(); CDerived cd; cd.hello(); // compile error return 0;} http://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c is a discussion about the difference. Since [size=11.6667px]stackoverflow can't be accessed sometimes in China, I write this post.
|
|