【发布时间】:2012-06-11 06:46:45
【问题描述】:
据我了解,C++ 类中的非静态数据成员被打包到 C 风格的结构中。为了简化讨论而忽略虚函数和继承,在这种方案中如何强制执行访问说明符?
说一堂课:
class Object
{
public:
int i1;
int i2;
private:
char i3;
int i4;
};
翻译为:
struct {
int i1;
int i2;
char i3;
int i4;
}
c++如何保证私有成员i3和i4不能在类外访问而i1和i2可以?
【问题讨论】:
-
谁说
class定义转换为struct定义(您定义它们的方式)? -
再次从网上阅读资料,这是我理解大多数编译器所做的。我可能错了。
-
请注意,这种“翻译”为结构并不是唯一可能的。