C++中:
1.class中成员的默认访问权限是private,struct中的成员的默认访问权限是public。
2. class的默认继承方式是private, struct 的默认继承方式是public。
#include <iostream> using namespace std; struct A { int a; }; struct B : A { //等价于 struct B : public A { int b; }; struct C : private A { int c; }; class base { int a; public: int b; }; class derived : base { //等价于 class devrived : private base { int d; }; class derived_public : public base { int d; }; int main() { A a; B b; C c; a.a = 10; //struct 中的成员的访问权限默认是共有的 member access level is public b.a = 10; //struct 的默认继承方式是共有(public)继承; b.b = 10; //struct 中的成员的访问权限默认是共有的 member access level is public //c.a = 10; //error: 'int A::a' is inaccessible c.c = 10; //struct 中的成员的访问权限默认是共有的 member access level is public base bb; derived d; derived_public dd; //bb.a = 10; //error: 'int base::a' is private //class 中成员默认的访问权限是private bb.b = 10; //d.a = 10; //error: 'int base::a' is private //d.b = 10; //error: 'int base::b' is inaccessible //class 的默认继承方式是私有继承private //d.d = 10; //error: 'int derived::d' is private //class 中成员默认的访问权限是private //dd.a = 10; //error: 'int base::a' is private dd.b = 10; //dd.d = 10;//error: 'int derived_public::d' is private //class 中成员默认的访问权限是private return 0; }