yaojingguo 发表于 2013-1-29 22:39:00

Difference between C++ class and struct

C++ Standard has an explanation for the difference. The first difference is described in 11.2 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 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 errorSDerived sd;sd.hello();CDerived cd;cd.hello(); // compile errorreturn 0;} http://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c is a discussion about the difference. Since stackoverflow can't be accessed sometimes in China, I write this post.
 
 
页: [1]
查看完整版本: Difference between C++ class and struct