C++ class和struct区别整理

来源:互联网 发布:elsevier数据库进不去 编辑:程序博客网 时间:2024/05/21 09:57

1、访问控制:class成员默认权限是private的,而struct成员默认权限是public;class默认继承方式是私有的继承,而struct默认是公有继承。这就是为什么我们在使用class继承的时候要表明public继承的原因。


2、到底默认是public继承还是private继承,关键看子类而不是基类,即struct可以继承class,class也可以继承struct,默认的访问控制权限主要看子类是struct还是class,如下:

class A;

struct B : class A;  //public继承

class C:  class A   // private继承


3、class可用于定义函数模板,使用方法同“typename”;但是struct无法用于定义模板参数。


4、在程序里,大部分位置可以完全将class和struct混用,但是为了程序可读性,需要确定两者更合理的使用方法,struct 更倾向于数据结构的实现体,而class更倾向于属于一种对象的实现体。


,5、在C语言中,class和struct还有其他不同,c是一种过程化的定义,而struct是一种复杂数据类型定义,并且struct只能定义成员变量,不能定义成员函数;

6、C++中保留了c语言中的struct关键字,并加以扩充,在C语言中,struct只能包含成员变量,不能包含成员函数。而在C++中国魂,struct类似于class,即可以包含成员变量,也可以包含成员函数。

(本文扒自n个牛人博客加上C++Primer Plus归纳,如有侵权,私聊我)

0 0
原创粉丝点击