在 C++ 的范畴里,除了 struct 结构体不支持访问权限修饰符(private、protected、public)外,已不再区分二者的其他方面语法上的差异。
因此,在 C++ 编程中,如果一个类是由 struct 来定义,说明其所有成员都可直接访问(通过.
或者->
)。
在使用上,与类所不同的是,结构体中的成员(无论是变量还是函数),可直接被外部访问,不存在访问权限的问题,而类相交而言,是 type-safe 的。
所以在一些情况下,在选择 struct 还是 class 来封装某一事物时,需要充分考虑其成员的访问情况。如果将其定义成 struct,既清晰地告知了编译器,也明确地向程序员传达的可放心访问的信号。