可能是这样的原因: 1.struct的设计目的是让外部的程序访问其数据成员,class设计的目的之一是不让外部程序直接访问其数据成员。 2.可能struct也是为了兼容C语言,如果设计成私有的,原来大量的C语言就无法使用了。