结构和类还有区别吗?都用类不是挺好的吗?
如题
[解决办法]
class和struct的区别是表面上的,主要是访问权限不同。
但是class和struct在人的使用习惯上有比它们表面看起来要大得多的区别。
一般,你定义一个类,你实际上是定义了一个类型,你需要向客户屏蔽这个类型所使用的内部数据和状态,转而提供类的使用接口给他们。无论什么时候,你有义务维护你的类型总是处于一种稳定可控的状态,叫做“类的不变式”。
虽然结构也可以做成这样的效果,但是一般人使用结构,就是把数据打成一个包,方便传输、阅读和维护,而不需要维护结构中数据的什么状态,也不需要对数据进行信息隐藏,同时也不需要提供额外的接口给客户使用。
[解决办法]
还有一个区别:
template <class T> 这里的关键字class是不能换成struct的。其它地方均可替换。