小角色,大心脏

C++博客 首页 新随笔 联系 聚合 管理
  6 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
今天学生问我,class 和 struct 到底有什么区别?我说:“在C++中,没有什么区别”,课下查阅一番,总结入下

1)在Cstruct是用来封装数据的,其中不能够有函数成员,变量默认的存取权限是public的;

2)而在C++中集成了在C中的用法并做出改进,那就是允许struct中有成员函数,这纯粹是为了和C兼容,因此如果不需要和C兼容或传递参数给C,建议在C++中不用struct

而实际中,大多数程序员习惯用struct定义只含数据成员的结构,而用class定义既含数据成员也汗函数成员的结构;

3)在C++中两者有微小的用法差异:一是class中成员默认的存取权限是private的,而struct中成员默认是public的;二是在用模板的时候只能写成template <class Type>template <typename Type>,而不能写成<struct Type>

4)另外,可以这样说不管定义在基类还是派生类,classdata member 和 非virtual function的存取效率和struct是一样的(或说如果没有多态和虚拟继承,二者存取效率相同);
PS:如有不恰当之处,望请指教!

posted on 2011-05-28 10:06 小角色 阅读(239) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理