C++与C语言的用法区别在VC+
学过C++的人一定知道类是什么,精通C的人也一定知道什么是结构,作为一名C语言的初学者的我,不仅产生了一些疑问:什么叫结构,什么是类?有人说他们长的很像,为什么这么说呢?他们之间有什么联系呢?但他们毕竟一个叫结构另一个叫类,他们又有什么区别呢?带着这些问题,我浅浅的了解了一下C语言的结构和C++的类。
首先我们要知道什么是结构什么是类:
结构是用同一个名字引用的相关的集合(或称聚合题),它是用其他类型的对象构造出来的派生数据类型。
说到派生,其实也不难理解:
结构中可包含多种不同数据类型的变量,如:int型的,float型的,char型的,long型的,甚至数组合指针...全部
学过C++的人一定知道类是什么,精通C的人也一定知道什么是结构,作为一名C语言的初学者的我,不仅产生了一些疑问:什么叫结构,什么是类?有人说他们长的很像,为什么这么说呢?他们之间有什么联系呢?但他们毕竟一个叫结构另一个叫类,他们又有什么区别呢?带着这些问题,我浅浅的了解了一下C语言的结构和C++的类。
首先我们要知道什么是结构什么是类:
结构是用同一个名字引用的相关的集合(或称聚合题),它是用其他类型的对象构造出来的派生数据类型。
说到派生,其实也不难理解:
结构中可包含多种不同数据类型的变量,如:int型的,float型的,char型的,long型的,甚至数组合指针,以及自引用指针等等,结构中包含有这些数据类型的变量,所以说结构是派生而来。
结构实例:
struct player/*关键字struct定义一个结构*/
{
int number;/*声明一个int型的number*/
char *name;
char *nationality;
}
在struct后边的player就变成了像int,一样的声明符。
main()
{
struct player A;/*声明一个player型的结构A*/
struct player *aptr;/*声明一个指针*/
。。。。。。
}
数组与结构一瞥:
相同点 特点
数组 都是聚合体 数组种植包含相同的数据类型的元素,每个元素都有在数组下的一个数标,如:s[n]
结构 可包括多种不同数据类型的变量。
(本篇大部分都在介绍结构,在这里就不多说了)
枚举 利用关键字enum声明枚举,一般用来声明元素有规律的对象体,例如:月份,日期,星期等。
联合 利用关键字union声明联合,联合的每个成员的地址就是联合对象的地址,之所以他们公用一个地址,所以联合又叫共同体,也因此只有最后赋给联合成员的值才有效。
符号 名称 读法 用法
。 结构成员运算符 结构A的成员number mber
-> 结构指针运算符 aptr指向结构的成员 aptr->number
结构初始化:
结构初始化有两种:
1. 用初始化列表初始化,即在声明结构变量时,在变量明后用等号连接在花括号中的初始化值列表来初始化该结构变量,初始化值用逗号分开。
例如:
struct player A={5,“Xiaogang”,“China”};
2. 利用访问结构成员初始化。
例如:
mber=5; ="Xiaogang" tionality="China";/*效果于1定义得一样*/
aptr ->number=5;
aptr ->name="Xiaogang";
aptr ->nationality="China";/*效果于1定义得一样*/
关键字typedef:
typedef 可用来建立已定义好的数据类型的别名。
例如:
typedef struct player Player;
定义型的类型名Player,它是类型struct player的别名。
*结构的重要性是不言而喻的,他和指针可用来构造更复杂的数据结构,例如:链表、队列、堆栈和树。
(在这里我就不多说了!)
类定义:
在解释类之前,我们必须了解对象:
称现实世界中客观存在的事物为对象,只要是客观世界你能想得到的实物、抽象的物都可以是一个对象;例如:整数是一个对象,汽车是对象,人也是对象。
。。。。。
C++可使用对象名、属性和操作三要数来描述对象,我们用对象结构图来描述一个对象:
这里有一个人叫小刚,我们用对象结构图来描述他:
清楚什么是对象了,我们可以介绍类了。
学过C++的人一定知道类是什么,精通C的人也一定知道什么是结构,作为一名C语言的初学者的我,不仅产生了一些疑问:什么叫结构,什么是类?有人说他们长的很像,为什么这么说呢?他们之间有什么联系呢?但他们毕竟一个叫结构另一个叫类,他们又有什么区别呢?带着这些问题,我浅浅的了解了一下C语言的结构和C++的类。
首先我们要知道什么是结构什么是类:
结构是用同一个名字引用的相关的集合(或称聚合题),它是用其他类型的对象构造出来的派生数据类型。
说到派生,其实也不难理解:
结构中可包含多种不同数据类型的变量,如:int型的,float型的,char型的,long型的,甚至数组合指针,以及自引用指针等等,结构中包含有这些数据类型的变量,所以说结构是派生而来。
结构实例:
struct player/*关键字struct定义一个结构*/
{
int number;/*声明一个int型的number*/
char *name;
char *nationality;
}
在struct后边的player就变成了像int,一样的声明符。
main()
{
struct player A;/*声明一个player型的结构A*/
struct player *aptr;/*声明一个指针*/
。。。。。。
}
数组与结构一瞥:
相同点 特点
数组 都是聚合体 数组种植包含相同的数据类型的元素,每个元素都有在数组下的一个数标,如:s[n]
结构 可包括多种不同数据类型的变量。
(本篇大部分都在介绍结构,在这里就不多说了)
枚举 利用关键字enum声明枚举,一般用来声明元素有规律的对象体,例如:月份,日期,星期等。
联合 利用关键字union声明联合,联合的每个成员的地址就是联合对象的地址,之所以他们公用一个地址,所以联合又叫共同体,也因此只有最后赋给联合成员的值才有效。
符号 名称 读法 用法
。 结构成员运算符 结构A的成员number mber
-> 结构指针运算符 aptr指向结构的成员 aptr->number
结构初始化:
结构初始化有两种:
1. 用初始化列表初始化,即在声明结构变量时,在变量明后用等号连接在花括号中的初始化值列表来初始化该结构变量,初始化值用逗号分开。
例如:
struct player A={5,“Xiaogang”,“China”};
2. 利用访问结构成员初始化。
例如:
mber=5; ="Xiaogang" tionality="China";/*效果于1定义得一样*/
aptr ->number=5;
aptr ->name="Xiaogang";
aptr ->nationality="China";/*效果于1定义得一样*/
关键字typedef:
typedef 可用来建立已定义好的数据类型的别名。
例如:
typedef struct player Player;
定义型的类型名Player,它是类型struct player的别名。
*结构的重要性是不言而喻的,他和指针可用来构造更复杂的数据结构,例如:链表、队列、堆栈和树。
(在这里我就不多说了!)
类定义:
在解释类之前,我们必须了解对象:
称现实世界中客观存在的事物为对象,只要是客观世界你能想得到的实物、抽象的物都可以是一个对象;例如:整数是一个对象,汽车是对象,人也是对象。
。。。。。
C++可使用对象名、属性和操作三要数来描述对象,我们用对象结构图来描述一个对象:
这里有一个人叫小刚,我们用对象结构图来描述他:
清楚什么是对象了,我们可以介绍类了。
。收起