** 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; 形式很像吧。 其实完全可以把 类也看成一种结构 或 一种数据类型。
当你把类,枚举,结构都看成数据类型的话, 你会发现 原来一切都是那么简单。
//====================================
以上纯属个人观点,如有不对之处忘指出。 共同学习哦。反正按我的方式定义数据类型是不会出错。
以上只针对菜鸟级别新手哦。 希望对你会有点用处。
阅读(919) | 评论(0) | 转发(0) |