一、相对于C中struct,C++作了很大的扩充。基本上和class 差很少。只有一些细节上的差异。编程
二、对于成员的默认访问权限,class是private,struct是public。须要注意的是,程序中应该明确指出访问权限,不要依赖默认的访问权限。对于其它默认的状况也是同样,尽可能明确指出来,这是一个良好的编程习惯,增长代码的可读性。继承
三、对于默认的继承方式,class是private,struct是public。须要注意的是,class可继承class,也可继承struct。struct可继承struct,也可继承class。默认的继承方式取决于子类是struct仍是class。和上面同样,这里应该明确指出继承方式,而不该该依赖默认。编译器
四、对于struct和class,均可以使用使用{}来赋初值,前提是:a、字段是public,由于public才能够直接访问;b、没有父类,没有自定义构造方法和虚方法,能够有普通的成员方法。能够认为,继承,自定义构造方法,虚方法改变了类的内部结构,所以编译器禁止使用{}赋初值。编译
五、定义模版参数,使用typename,也可使用class。可是不能使用struct。class