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>