struct 与 class

来源:互联网 发布:剑灵捏脸数据免费下载 编辑:程序博客网 时间:2024/05/21 17:13

struct 与 class

又一次听struct与class的区别之讨论。。。

首先struct与class的区别是对于c++ 而言的,对于c语言没有Abstract Data Type(class)。

c++ 语言里关键字struct与class到底有什么区别呢? 答案是基本没有区别。

c++ 是c语言的一个超集, 因为兼容c, 保留了关键字struct 的。 没有用关键字“struct”而用“class”来表示Abstract Data Type,只是”class“  能更好的表达Abstract Data Type的意义。

这样一再讨论struct与class的区别的问题, 其实说到底是那个关键字定义了POD(plain old data)。

 struct A

{

   int date;

 

   void  set_date();
};

 

 struct B

{

   int date;

 

   virtual void  set_date();
};

 

上面两个A是POD.  关键字struct class 并不区分哪个是POD。 而是由你的定义来决定。 B 为了完成c++的对象模型, 编译器在B内部安插了一个指向虚表的指针。 详情可查阅--深入解析c++对象模型(inside the c++ object model)

原创粉丝点击