在C++中,为什么类的成员默认情况下是私有(private)可见性,而结构体的成员默认情况下是公共(public)可见性?
C++作为C的超集被引入。结构体从C中继承而来,其成员的语义是公共的。许多C代码存在,包括那些希望与C++一起使用的库,使用结构体。在C++中引入了类,为了符合面向对象封装的理念,它们的成员默认情况下是私有的。
可能是为了与C结构体保持向后兼容性。这样,在C++代码中使用声明在C代码中的结构体时,它们仍然可以像以前一样工作。
直接回答:C++中结构体的默认可见性为public,而类的默认可见性为private。