Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1067330
  • 博文数量: 264
  • 博客积分: 6005
  • 博客等级: 大校
  • 技术积分: 2798
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-08 20:15
文章分类

全部博文(264)

文章存档

2011年(42)

2010年(213)

2009年(4)

2008年(2)

2007年(3)

分类: C/C++

2010-01-11 00:04:44

** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
*     maoyong   2009.1.11

大家都知道 c 或c++中定义了 int、char、float等数据类型。  
申明一个变量是数据类型加变量名。 例如: int  a;


步入正题。 有种感悟c 或 c++ 中数据类型其实就是一个结构, 结构(struct)或类(class) 都数数据类型。

例如定义如下数据结构:
typedef  struct
{
    int   a;
    int   b;
    int   c;
}DATA_TYPE;

我们可以用上门定义的数据结构去申明和定义数据。

例如:
 DATA_TYPE   data;   //我们完全可以把 DATA_TYPE 看成一种数据类型。
我定义了一个DATA_TYPE 类型的变量,这个变量的名是 data , 变量的类型是 DATA_TYPE。

你会问那 int 就不是数据结构。 我是这么认为, int,  char  float  等都是数据结构。
int 是4字节的一种结构。    一般编译器编程int都是  4字节的(在32位系统的内存中占用4个自己)。
flaot 也是一种数据结构。
 
我们还可以构造我们自己的数据类型。

可以把多个数据结构拼在一起构成一个新的数据结构。

例如:

typedef  struct
{
    int   a;
    int   b;
    int   c;
   DATA_TYPE    data;
}DATA_TYPE_NEW;


我们又可以用  DATA_TYPE_NEW    data_new;   申明一个新的变量。  这个变量的名字是 data_new
变量的数据类型是 DATA_TYPE_NEW 
======================================
另外, class 也可以看成是数据类型。 class   和 struct 的区别只是 struct 中的变量或函数默认是是 public的
class 中的成员函数,或成员变量默认是private的。  除此之外,没什么区别。 当然您要是说,struct 和 class 有区别,我也承认是有区别的。  在 模板中也许是有区别的,有的编译器就不能把 struct 当做关键词。  
template   //正确
string NumberToString (T Number)
{
    ostringstream ss;
    ss << Number;
    return ss.str();
}

template   //正确
string NumberToString (T Number)
{
}

template   //不一定正确, 看编译器了作者怎么想了。
string NumberToString (T Number)
{
}


例如:  
class  CTest
{
};

CTest    test;   //这 和 int  a;  形式很像吧。  其实完全可以把  类也看成一种结构 或  一种数据类型。
当你把类,枚举,结构都看成数据类型的话, 你会发现  原来一切都是那么简单。


//====================================
以上纯属个人观点,如有不对之处忘指出。 共同学习哦。反正按我的方式定义数据类型是不会出错。
以上只针对菜鸟级别新手哦。 希望对你会有点用处。




 


阅读(926) | 评论(0) | 转发(0) |
0

上一篇:c++ 指针的引用

下一篇:单元测试gtest

给主人留下些什么吧!~~