struct和class

被问了struct和class有什么区别

答了默认的访问属性不同,但感觉对面不是很满意

查点资料总结一下

确实不太明白,因为c++primer里面只讲了这个,所以我也不清楚对面到底想问什么

c中的struct和c++中的struct

c c++
成员函数 不能 可以
静态成员 不能 可以
防控属性 默认public,不能修改 public\private\protected
继承关系 不可以继承 可以继承
初始化 不能直接初始化数据成员 可以

在C中使用结构体时需要加上struct,或者对结构体使用typedef取别名,而C++可直接使用

c++中的struct和class

c++中class和struct区别不是很大

如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同

主要区别只有继承权限和模板

struct中的成员默认是public,class中默认的是private

默认继承权限struct是public,class是private

在用模板的时候只能写template <class Type>template<typemname Type> 不能写template<struct Type>