请你来说一下C++中struct和class的区别
在C++中,class和struct做类型定义如下区别:
- 默认继承权限不同,class继承默认是private继承,而struct默认是public继承
- class还可用于定义模板参数,像typename,但是关键字struct不能用于定义模板参数
C++保留struct关键字,主要有如下原因
- 保证与C语言的向下兼容性,C++必须提供一个struct
- C++中的struct定义必须百分百地保证与C语言中的struct的向下兼容性,把C++中的最基本的对象单元规定为class而不是struct,就是为了避免各种兼容性要求的限制
- 对struct定义的扩展使C语言的代码能够更容易的被移植到C++中
评论(8)
不严谨,我定义个struct ListNode也可以直接给vector传入啊,应该说的是定义模板函数/类的时候可以用typename,class做关键字,但是struct不能,不能声明成template
不能声明成template
请问一下struct不能用于定义模板参数是啥意思
可以看评论,之后去百度搜索下
struct也可以用模板吧
我查了好些文章,貌似都是说不可以定义模版『参数』,是定义模版参数哦,不知道不同版本会不会有所区别
是”不能用于”吧
太感谢大佬了,平时错别字多,感谢指出,不过大家记得修改邮箱哦,不然大家收不到我的回复