C与C++下的struct的区别

C里定义一个struct,一般都会再利用typedef给该结构取一个别名,如:

1 tyepdef struct tagObject
2 {
3     int weight;
4     int price;
5     int status;
6 }OBJECT;

这样,以这个自定义的数据结构来创建一个变量时,就可以这样写:

1 OBJECT    objs;

而如果没有用typedef重定义的话,即按struct的原始定义为:

1  tyepdef struct tagObject
2  {
3      int weight;
4      int price;
5      int status;
6 }OBJECT;

这样,如果要创建一个这种类型的变量时,需要这样定义:

1 struct tagObject    objs;

本质原因是:创建的数据类型是struct tagObject,而不是tagObject。

但是,在C++里则不需要用typedef定义,struct 与class的唯一区别是默认的访问等级class私有的struct 则是公有的

posted @ 2015-07-14 15:59  Jon_Snow  阅读(200)  评论(0编辑  收藏  举报